首先,super().__init__是Python中调用父类构造方法的语句,他有以下情况:
当Python中一个子类继承父类:
- 如果不对子类初始化,那么他将自动调用父类的构造方法
class TestA():
def __init__(self):
print('A')
class TestB(TestA):
print('B')
tb = TestB()
运行结果:
- 如果子类有了构造方法,但没有调用父类的构造方法,则子类不会执行父类构造:
class TestA():
def __init__(self):
print('A')
class TestB(TestA):
def __init__(self):
print('B')
tb = TestB()
运行结果:
- 当子类有构造方法,且调用父类构造方法时,两个构造方法都会调用:
class TestA():
def __init__(self):
print('A')
class TestB(TestA):
def __init__(self):
super().__init__()
print('B')
tb = TestB()
运行结果: