Python super() 函数

2018-04-06  本文已影响0人  大猪厂

描述

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
上一篇 下一篇

猜你喜欢

热点阅读