注意: 在父类与字类具有相同的属性时候,super().__init__()
父类 初始化的先后顺序回对其有影响。
class Foo:
def __init__(self):
self._name = 'aa'
def get_name(self):
return self._name
class Bar(Foo):
def __init__(self, name):
super().__init__()
self._name = name
bar = Bar('bar')
print(Bar.mro()) # 类属性与方法的查找顺序
print(bar.get_name())
[<class '__main__.Bar'>, <class '__main__.Foo'>, <class 'object'>]
bar
class Foo:
def __init__(self):
self._name = 'aa'
def get_name(self):
return self._name
class Bar(Foo):
def __init__(self, name):
self._name = name
super().__init__()
bar = Bar('bar')
print(Bar.mro())
print(bar.get_name())
[<class '__main__.Bar'>, <class '__main__.Foo'>, <class 'object'>]
aa