python Super()函数

一:

# 自动继承object类、所以Python3都是新式类
class A:
    def add(self, x):
        y = x + 1
        print(y)


class B(A):
    def add(self, x):
        # python3 调用超类的方法
        super().add(x)

b= B()
b.add(3)

二:

# Python2.x 记得继承 object
class A(object):   
    def add(self, x):
         y = x+1
         print(y)

class B(A):
    def add(self, x):
        # python2 调用超累的方法
        super(B, self).add(x)
b = B()
b.add(2)  # 3

三:

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) 首先找到 FooChild 的父类(就是类 FooParent),
        # 然后把类 FooChild 的对象转换为类 FooParent 的对象
        super(FooChild, self).__init__()
        print('Child')

    def bar(self, message):
        super(FooChild, self).bar(message)
        print('Child bar fuction')
        print(self.parent)


if __name__ == '__main__':
    fooChild = FooChild()
    fooChild.bar('HelloWorld')

四|、MRO

"""
python3 的 method resolution order 、
1、广度优先
2、多继承在同一(层级)谁在前先继承谁
"""
class F:
    pass


class E:
    pass


class D:
    pass


class B(D, E):
    pass


class C(D, F):
    pass


class A(B, C):
    pass

print(A.__mro__)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值