在Python中,super()
是一個內置函數,用于調用父類的方法。它通常用于子類的構造函數中,以便在子類中調用父類的構造函數來初始化父類的屬性。
使用super()
時,可以在子類中調用父類的方法,也可以在子類中調用父類的屬性。它的常見用法有以下兩種:
super().__init__()
來調用父類的構造函數,以便初始化父類的屬性。這樣可以避免代碼重復,并確保父類的初始化邏輯被正確執行。class Parent:
def __init__(self, name):
self.name = name
class Child(Parent):
def __init__(self, name, age):
super().__init__(name) # 調用父類的構造函數
self.age = age
child = Child("Alice", 10)
print(child.name) # 輸出:Alice
print(child.age) # 輸出:10
super().method()
來調用父類的方法。這樣可以繼承父類的行為,并在子類中添加特定的邏輯。class Parent:
def greet(self):
print("Hello from Parent")
class Child(Parent):
def greet(self):
super().greet() # 調用父類的方法
print("Hello from Child")
child = Child()
child.greet() # 輸出:Hello from Parent Hello from Child
需要注意的是,super()
并不是必須使用的,特別是在單繼承的情況下。在這種情況下,直接通過父類的類名調用方法即可。但當存在多繼承時,使用super()
可以確保方法調用的順序遵循類的繼承順序,避免出現不可預期的錯誤。