描述
super() 函数是用于调用父类(超类)的一个方法。
super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。
MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。
语法
以下是 super() 方法的语法:
super(type[, object-or-type])
实例
class FooParent(object):
def __init__(self):
self.parent = 'I\'m the parent'
print('Parent')
def bar(self, message):
print('%s from Parent' % message)
class FooChild(FooParent):
def __init__(self):
super(FooChild,self).__init__()
print('child')
def bar(self, message):
super(FooChild,self).bar(message)
print('child bar function')
print(self.parent)
if __name__ == '__main__':
fooChild =FooChild()
fooChild.bar('HelloWorld')
C:\Users\Administrator\PycharmProjects\django_1\venv\Scripts\python.exe C:/Users/Administrator/PycharmProject/findword/super.py
Parent
child
HelloWorld from Parent
child bar function
I'm the parent
Process finished with exit code 0
网友评论