子类__init__初始化时,如果要对基类进行初始化,大家都知道可以用super:
>>> class base(object):
def __init__(self):
print('base init')
>>> class derived(base):
def __init__(self):
print('derived init')
super(derived, self).__init__()
>>> obj=derived()
derived init
base init
以上是最简单的直接继承用法,那如果是多继承会是什么情况呢?
>>> class base1(object):
def __init__(self):
print('base1 init')
>>> class base2(object):
def __init__(self):
print('base2 init')
>>> class derived(base1, base2):
def __init__(self):
print('derived init')
super(derived, self).__init__()
>>> obj=derived()
derived init
base1 init
从上面的结果可以看出,通过super的方式调用基类__init__实际只调用了第一个继承基类base1的__init__,而没有调用第二个基类的__init__。