我有一个python类,它继承自apache storm multilang项目的storm.py。
我的班级如下:
import storm
class MyClassName(Storm.Bolt):
def initialize(self,conf,context):
self._conf = conf;
self._context = context
def process(self, in_tuple):
storm.ack(in_tuple)
if __name__ == '__main__':
MyClassName().run()
我将python文件(myfilename.py)复制到/usr/lib64/python2.7/site-package。然后我登录到pythonshell并执行了一个 import myfilename
. 没有错误地完成了。当我运行以下命令时 inspect.getmro(myfilename.MyClassName())
我得到以下错误:
AttributeError: 'MyClassName' object has no attribute '__bases__'
我的印象是,当我宣布我的班级,并通过它 Storm.Bolt
我在扩展 Storm.Bolt
. 我的问题是:
我需要定义吗 __bases__
在我班上?
我还缺什么?
在centos7上使用Python2.7.13。storm版本是1.1.0
1条答案
按热度按时间mqkwyuun1#
这个
inspect.getmro
函数期望它的参数是一个类,但您正在向它传递一个示例。去掉调用类的括号,代码应该可以工作:如果您在问题中给出的调用是一个简化的示例,并且您在调用的地方没有直接可用的类
getmro
在示例上,可以使用type
要获得课程: