我是多个类的子类。当我打印实例属性时,self.__dict__
仅包含First类的属性。我怎样才能包含第二个属性?
class Third(First,Second):
def __init__(self):
super().__init__()
print (self.__dict__)
答案 0 :(得分:3)
呼叫First
只会从method resolution order中的下一个超类呼叫super().__init__
。然后,下一个类方法的作用也是调用__init__
。
super().__init__
class First:
def __init__(self):
self.foo = 'foo'
class Second:
def __init__(self):
self.bar = 'bar'
class Third(First,Second):
def __init__(self):
super().__init__()
print(self.__dict__)
Third() # prints: {'foo': 'foo'}
答案 1 :(得分:0)
可能是因为您在课程super().__init__()
的{{1}}中省略了超级电话__init__