我正在使用具有3级类继承的代码。从最低级别的派生类开始,调用方法2的语法是向上层次结构的上层,例如 super 通话? “中间”类未实现我需要调用的方法。
最佳答案
好吧,这是一种实现方式:
class Grandparent(object):
def my_method(self):
print "Grandparent"
class Parent(Grandparent):
def my_method(self):
print "Parent"
class Child(Parent):
def my_method(self):
print "Hello Grandparent"
Grandparent.my_method(self)
也许不是您想要的,但是除非我弄错了,否则它是最好的python。您要问的内容听起来是反Python的,您必须解释为什么要这么做,以便我们为您提供快乐的python做事方式。
另一个示例,也许是您想要的(根据您的评论):
class Grandparent(object):
def my_method(self):
print "Grandparent"
class Parent(Grandparent):
def some_other_method(self):
print "Parent"
class Child(Parent):
def my_method(self):
print "Hello Grandparent"
super(Child, self).my_method()
如您所见,
Parent
并未实现my_method
,但Child
仍可以使用super来获得Parent
“看到”的方法,即Grandparent
的my_method
。关于python - 如何从孙子类中调用 super 方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31232098/