Python 中的 super 函式
Muhammad Waiz Khan
2021年4月29日
本教程將解釋 Python 中內建的 super()
函式的用途和用法。物件導向程式設計(OOP)的核心概念之一是繼承,在繼承中,一個類(子類)可以訪問父類或超類的屬性和方法。
在多個繼承中,一個類可以從多個類繼承屬性和方法,這意味著該類將具有多個超類。super()
函式很有用,主要用於多重繼承的情況下,本教程將討論 super()
函式的詳細資訊和程式碼示例。
在 Python 中使用內建函式 super()
super()
函式訪問類中重寫的繼承方法。在具有多個繼承的子類中使用 super()
函式來訪問下一個父類或超類的函式。super()
函式使用方法解析順序(MRO)確定下一個父類。例如,如果 MRO 是 C -> D -> B -> A -> object
,那麼 super()
函式將按 D -> B -> A -> object
的順序尋找下一個父類或超類方法。
如果該類是單個繼承類,則在這種情況下,super()
函式可用於使用父類的方法而無需顯式使用其名稱。
super(type)
函式返回一個代理物件,該物件呼叫輸入 type
的父級或同級類的方法。在 Python 2 和 3 中,super()
的語法不同,我們可以在 Python 2 中使用 super()
函式將繼承的方法 mymethod()
稱為 super(type, self).mymethod(args)
,在 Python 3 中為 super().mymethod(args)
。
現在,讓我們看一下使用 super()
函式從 Python 的子類中呼叫繼承的方法的詳細示例程式碼。
示例程式碼:
class mysuper_class(object):
def super_method(self):
print("Method of the super class was called!")
class myclass(mysuper_class):
def mymethod(self):
super().super_method()
a = myclass()
a.mymethod()
輸出:
Method of the super class was called