【发布时间】:2021-05-07 15:34:45
【问题描述】:
class Parent1:
def __init__(self):
self.data1 = 10
print("parent1")
class Parent2:
def __init__(self):
self.data2 = 20
print("parent2")
class child(Parent2,Parent1):
def __init__(self):
print("this is child class")
super().__init__()
print(self.data1)
print(self.data2)
obj = child()
输出:
this is child class
parent2
Traceback (most recent call last):
File "f:/Project2020/Rough Work/rough2.py", line 18, in <module>
obj = child()
File "f:/Project2020/Rough Work/rough2.py", line 15, in __init__
print(self.data1)
AttributeError: 'child' object has no attribute 'data1'
【问题讨论】:
-
Parent2.__init__不会调用super().__init__,因此不会调用Parent1.__init__。 -
当您设计多重继承时,所有类都需要在其方法中调用超级实现。
-
为什么 super().__init__() 没有调用 Parent2 类的 __init__()?
标签: python inheritance parent-child super base-class