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

约翰:

在Python中创建简单的对象层次结构时,我希望能够从派生类中调用父类的方法。在Perl和Java中,有一个用于此的关键字(super)。在Perl中,我可以这样做:

package Foo;

sub frotz {
    return "Bamf";
}

package Bar;
@ISA = qw(Foo);

sub frotz {
   my $str = SUPER::frotz();
   return uc($str);
}

在Python中,似乎必须从子类中明确命名父类。在上面的示例中,我必须做类似的事情Foo::frotz()

这似乎不对,因为这种行为使创建深层次结构变得困难。如果孩子们需要知道哪个类定义了一个继承的方法,那么就会造成各种各样的信息痛苦。

这是python中的实际限制,我的理解上的空白还是两者都有?

亚当·罗森菲尔德(Adam Rosenfield):

是的,但仅适用于新型类使用super()功能:

class Foo(Bar):
    def baz(self, arg):
        return super().baz(arg)

对于python <3,请使用:

class Foo(Bar):
    def baz(self, arg):
        return super(Foo, self).baz(arg)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在同名的子类方法中调用父类方法?

如何在python中使用子类的方法调用第二个父类的方法?

Python:如何在调用父类时进行子类化?

如何在父类的函数中调用子类的函数

如何在C#的父类方法中调用子类的字段

如何在python中调用父类方法?

如何从子类中调用重写的父类方法?

Django / Python:如何从子类中的父类调用函数?

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

如何在javascript子类中调用父方法

如何在React的子类组件中调用父方法

如何在python中使用子类的方法调用第三个或更高父类的方法?

如何在Python中访问父类变量并使用子对象调用父方法

您如何在Java中从超类调用子类方法?

如何访问子类中的父类方法

如何使用父类的方法调用子类的方法?

如何在Flutter中从子类函数调用父类函数

如何重写子类中的方法并调用父类方法而不丢失数据

如何在Mootools扩展类中调用任意父方法

OOP - 如何在父类中调用子方法

调用子类方法而不调用父类

在父类和子类的构造函数中调用重写的方法

在父类构造函数调用的方法中访问子类字段

在子类中调用父类的方法时出现stackoverflow

当参数在C ++中为父类类型时,如何调用子类的方法?

我想调用父类方法,该方法在Python中通过子类对象在子类中被覆盖

在python中从子类调用父类构造函数

在子类中调用父方法

如何在python中调用类的方法?