在Python 中呼叫父類別方法
Python 的繼承機制允許衍生類別存取基底類別方法,但與Perl 或Java 不同的是,它不支援衍生類別存取基類方法。不要提供像“super”這樣的關鍵字。相反,您需要明確引用父類。
範例:
考慮以下範例,其中Bar 類別擴充了Foo 類別:
class Foo: def frotz(self): return "Bamf" class Bar(Foo): def frotz(self): # Attempt to explicitly call the parent class 'frotz' method return Foo.frotz(self)
這種方式需要明確指定父類,不方便深入
解決方案:使用'super()'函數
Python 2.2 及更高版本引入了super() 函數,它提供了更優雅的解決方案:
class Bar(Foo): def frotz(self): # Now calling 'frotz' using the 'super()' function return super().frotz()
super() 函數根據派生類別中的上下文智慧地決定要繼承的父類別。這消除了明確指定父類別的需要。
對於Python
對於Python
class Foo(object): def baz(self): pass class Bar(Foo): def baz(self, arg): return super(Bar, self).baz(arg) # Explicitly specifying 'Bar' as parent
對於Python
3:對於Python 3: 3 之前的Python版本,您必須明確選擇使用新式類別:物件基底類別用於啟用 new-樣式類別語法。 因此,在 Python 中,可以使用「super()」函數(首選)或透過明確引用父類別(僅適用於 Python以上是Python繼承如何呼叫父類別方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!