我正在使用具有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“看到”的方法,即Grandparentmy_method

关于python - 如何从孙子类中调用 super 方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31232098/

10-11 23:27