在Python 中從子類別呼叫父類別方法
在設計物件層次結構時,通常需要從內部的父類別呼叫方法派生類別。在 Perl 和 Java 等語言中,「super」關鍵字有助於實現這一點。然而,在Python中,方法似乎有所不同。
顯式父類引用
在Python中,明確命名父類似乎是唯一的方法從孩子那裡調用它的方法。例如,如果父類別 Foo 包含方法 frotz,則子類別 Bar 需要將其引用為 Foo::frotz()。
限制和問題
這種方法可能會在複雜的層次結構中帶來挑戰,因為孩子們可能並不總是知道定義繼承方法的類。這可能會導致維護和可讀性問題。
Super() 函數
幸運的是,Python 2.2 及更高版本引入了 super() 函數來克服此限制。 super() 允許您直接存取父類別方法。以下是一個例子:
class Foo: def frotz(self): return "Baz" class Bar(Foo): def frotz(self): # Call the parent class's frotz method using super() return super().frotz() + " Quux"
透過呼叫 super().frotz(),子類別 Bar 可以存取其父類別 Foo 的 frotz 方法。
New-Style類別
對於 3.0 之前的 Python 版本,您必須明確選擇使用新樣式類別。在這種情況下,語法略有不同:
class Foo(Bar): def baz(self, arg): return super(Foo, self).baz(arg)
在這些舊版本中, super 接受兩個參數:子類別名稱(例如 Foo)和實例物件(例如 self)。
以上是如何在Python中從子類別呼叫父類別方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!