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)