如何在Python中引用父方法?

7 浏览
0 Comments

如何在Python中引用父方法?

这个问题已有回答:

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

假设我有两个类(一个是父类,另一个是子类)。如果该方法在子类中与父类中定义不同,我该如何引用父类中的方法?

下面是代码:

class A:
    def __init__(self, num):
        self.value=num
    def f(self, num):
        return self.value+2
class B(A):
    def f(self, num):
        return 7*self.f(num)

在最后一行,我想使用\"self.f(num)\"命令引用父类A,而不是在B中引用该方法本身,这会创建无限递归。提前感谢您的回答。

admin 更改状态以发布 2023年5月23日
0
0 Comments

使用 super

return 7 * super(B, self).f(num)

或者在python 3中,只需要:

return 7 * super().f(num)

0
0 Comments

如果你知道你想使用A,你也可以通过这种方式明确地引用A:

class B(A):
    def f(self,num): 
        return 7 * A.f(self,num)

要记住需要显式地给成员函数A.f()传递self参数。

0