首页 >后端开发 >Python教程 >如何在Python中从子类调用父类方法?

如何在Python中从子类调用父类方法?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-03 14:14:16736浏览

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