Python 中的 super 函式

Muhammad Waiz Khan 2021年4月29日
Python 中的 super 函式

本教程將解釋 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

相關文章 - Python Class