首頁 >後端開發 >Python教學 >如何在Python中從子類別呼叫父類別方法?

如何在Python中從子類別呼叫父類別方法?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-03 14:14:16790瀏覽

How Can I Call Parent Class Methods from Child Classes in Python?

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn