Python - 使用子级 super() 调用中父级的方法

问题描述 投票:0回答:1

我想类似的问题还有很多,但我不知道如何搜索这种情况。假设我有以下代码结构:

class Parent():
    def method(self):
        self.helper()
        print('Parent method')

    def helper(self):
        print('Parent helper')

class Child(Parent):
    def method(self):
        super().method()
        print('Child method')

    def helper(self):
        print('Child helper')

当我调用

Child.method()
时,
super()
调用按预期运行
Parent.method()
。然而,从
Parent.method()
开始,被调用的助手是
Child.helper()
。为什么会出现这种情况?我怎样才能让它运行
Parent.helper()

python inheritance parent-child method-resolution-order
1个回答
0
投票

你可以想象你的代码加载后实际上是这样的:

class Child(Parent):
    def method(self):
        # super().method()
        # the line above if same as:
        self.helper()
        print('Parent method')
        # end

        print('Child method')

    def helper(self):
        print('Child helper')
© www.soinside.com 2019 - 2024. All rights reserved.