代码改变世界

python面向对象:继承

2020-11-16 17:20  清风软件测试开发  阅读(93)  评论(0编辑  收藏  举报

python面向对象:继承super()的用

super()的用法 一:

class A:
    def __init__(self):
        self.a = '这是一个属性'
    def add(self, x):
        y = x + 1
        print(y)


class B(A):
    def __init__(self):
        super().__init__()    # 这两种方式都是可以的,只能选择一种
        A.__init__(self)      # 这两种方式都是可以的,只能选择一种
    def add(self, x):
        super().add(x)


b = B()
b.add(2)  #输出 3

super()的用法 二:

class A ():
    def __init__(self, a, b):
        self.a = a
        self.b = b


class B (A):
    def __init__(self, a ,b):
        super(D, self).__init__(a, b)   #这三种都可以,只能选择一种, init里面不能再加self
        super().__init__(a, b)          #这三种都可以,只能选择一种, init里面不能再加self
        A.__init__(self, a, b)          #这三种都可以,只能选择一种, init里面不能再加self

super()的用法 三:

class A ():
    def __init__(self, a, b):
        self.a = a
        self.b = b


class B (A):
    def __init__(self, a, b, c, d ):
        A.__init__(self, a, b)
        self.c = c
        self.d = d


class C (A):
    def __init__(self, a, b, c, d ):
        super(C, self).__init__( a, b)   #这两种都可以,只能选择一种, init里面不能再加self
        super().__init__(a, b)           #这两种都可以,只能选择一种, init里面不能再加self
        self.c = c
        self.d = d


a = A(1,2)
b = B(1,2,3,4)
c = C(1,2,3,4)