如何在 Python 子类中调用父类方法
在面向对象编程中,派生类通常需要访问其定义的方法家长班。这是创建复杂的类层次结构时出现的常见情况。然而,Python 的命名约定可能会给 Perl 和 Java 等其他语言的开发人员带来一些问题。
与 Perl 的“SUPER”或 Java 的“super”关键字不同,Python 不提供调用父方法的预定义方法。相反,您必须在调用该方法时显式指定父类名称。这可能会给维护深层类层次结构带来挑战,跟踪继承方法的谱系变得很复杂。
为了克服此限制并无缝调用父方法,Python 提供了 super() 函数。该实用程序使您能够从父类调用方法,而无需显式引用其名称。让我们用一个简单的例子来看看如何使用 super():
class Foo(Bar): def baz(self, **kwargs): return super().baz(**kwargs)
在这段代码中,Foo 类继承自 Bar 并定义了一个 baz() 方法。在 Foo 的 baz() 方法中,我们可以使用 super().baz(**kwargs) 从 Bar 调用 baz() 方法。
如果您使用的是 3 之前的 Python 版本,您'需要显式地启用新式类的使用,并编写如下代码:
class Foo(Bar): def baz(self, arg): return super(Foo, self).baz(arg)
通过以这种方式使用 super(),您可以轻松调用父方法,无论类层次结构的深度。这使您的代码保持干净且可维护,从而减少了在访问其方法时显式命名父类的需要。
以上是如何在Python子类中调用父类方法?的详细内容。更多信息请关注PHP中文网其他相关文章!