在此代码中:
class A():
def __init__(self, x):
self.x = x
def __str__(self):
return self.x
class B(A):
def __str__(self):
return super().__str__()
b = B("Hi")
print(b)
输出为:
Hi
。
幕后发生了什么?派生类中的默认构造函数如何调用超类构造函数?传递给派生类对象的参数如何映射到超类的参数?
派生类中的默认构造函数如何调用超类构造函数?
您没有在
B
中覆盖它,因此您从 A
继承了它。这就是继承的目的。
>>> B.__init__ is A.__init__
True