-
相對于類名.super().__init__
,在單繼承上⽤法基本⽆差__init__
- 單繼承時,使⽤super⽅法,則不能全部傳遞,隻能傳⽗類⽅法所需的參數,否則會報錯
class A(object):
def __init__(self, name):
print('A 的__init__開始被調⽤')
self.name = name
class B(A):
def __init__(self, name, age):
print("B 的__init__開始被調用")
self.age = age
super().__init__(name)
print('B 的__init__ 結束調用')
class C(B):
def __init__(self, name, age, gender):
print('C 的init開始被調⽤')
self.gender = gender
super().__init__(name, age) # 單繼承不能提供全部參數
print('C 的init結束被調⽤')
gs = C('林志玲', 18, '女')
print('姓名:', gs.name)
print('年齡:', gs.age)
# 輸出結果
C 的init開始被調⽤
B 的__init__開始被調用
A 的__init__開始被調⽤
B 的__init__ 結束調用
C 的init結束被調⽤
姓名: 林志玲
年齡: 18