在 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:但是,对于 3 之前的 Python 版本,您必须显式选择使用新式类:对象基类用于启用 new-样式类语法。因此,在 Python 中,可以使用“super()”函数(首选)或通过显式引用父类(仅适用于 Python以上是Python继承中如何调用父类方法?的详细内容。更多信息请关注PHP中文网其他相关文章!