Python 中 super(继承自己) 用法解析

1 super() 用法描述

  • super(父类) 函数是用来调用父类的方法的函数

  • super() 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题

  • MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表

2 示例

class parent():
    def __init__(self):
        self.parent = "This is the parent."
        print("This is the parent in the parent's  __init__.")
    def func(self, object):
        print("%s from parent." % object)
        
class childs(parent):
    def __init__(self):
        # super(childs, self) 先找到 childs 的父类 parent, 然后再使用对应的方法
        super(childs, self).__init__()
        print("This is in the child's __init__.")
    def func(self, object):
        super(childs, self).func(object)
        print("childs' func.")
        print(self.parent)

if __name__ == "__main__":
    child = childs()
    print("-------------Create childs()-------------------")
    child.func("I love my parents!")

>>> This is the parent in the parent's  __init__.
>>> This is in the child's __init__.
>>> -------------Create childs()-------------------
>>> I love my parents! from parent.
>>> childs' func.
>>> This is the parent.

你可能感兴趣的:(Pytorch,中的各种函数,Python,基础,python,Pytorch)