我使用python3.6.3
我有以下代码:
class Parent:
def __init__(self, **kw):
print("init parent")
class PP:
def __init__(self, **kw):
print("init PP")
class Child(PP, Parent):
def __init__(self, **kw):
print("init child")
super().__init__()
exp=Child()
我希望:
init child
init PP
init parent
但我得到了:
init child
init PP
当我试图打印MRO时,我得到了正确的答案。你知道吗
print(exp.__class__.mro())
[<class '__main__.Child'>, <class '__main__.PP'>, <class '__main__.Parent'>, <class 'object'>]
为什么没有parent
的打印?你知道吗
Python不会自动调用
__init__
的Parent
。您必须在PP
中用super().__init__()
显式地执行此操作:现在输出为:
相关问题 更多 >
编程相关推荐