您的子类应为:
class TypeTwoEvent(Event): def __init__(self, level=None, *args, **kwargs): super(TypeTwoEvent, self).__init__(*args, **kwargs) self.sr1 = level self.state = STATE_EVENT_TWO
因为您覆盖了
__init__方法,所以如果您希望发生父行为,则需要调用父方法。
记住,
__init__不是一个奇怪的名字的特殊方法。这只是创建对象后自动调用的方法。否则,这是一个普通方法,并且适用普通继承规则。
super(ClassName, self).__init__(arguments, that, goes, to, parents)
是调用方法的父版本的语法。
对于
*args和
**kwargs,它只是确保我们捕获传递给
__init__父方法的所有其他参数,因为您的子方法签名没有做到,并且父方法需要这些参数才能工作。


![Python类继承:AttributeError:'[SubClass]'对象没有属性'xxx' Python类继承:AttributeError:'[SubClass]'对象没有属性'xxx'](http://www.mshxw.com/aiimages/31/641661.png)
