在 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的实际限制,还是我理解上的差距,或者两者兼而有之?
Use the super()功能:
class Foo(Bar):
def baz(self, **kwargs):
return super().baz(**kwargs)
对于 Python 新式课堂并使用:
class Foo(Bar):
def baz(self, arg):
return super(Foo, self).baz(arg)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)