gpt4 book ai didi

python - 从父类(super class)的父类(super class)调用方法

转载 作者:行者123 更新时间:2023-11-28 21:46:51 30 4
gpt4 key购买 nike

我有一个例子。我有两个类(class)。 AB 的父类(super class)。

class A(object):
def p(self):
print "a"


class B(A):
def p(self):
print "b"
super(A, self).p()

现在我有了一个新类 C。类 CB 的子类,应该再次覆盖方法 p,如下所示:

class C(B):
def p(self):
print "c"
# here call the method p of the 'supersuper'class A
# without calling the method p of the superclass B
...

如何覆盖 C 类中 父类(super class) B 的方法 p() 并调用超父类(super class) A 方法 p() 不调用父类(super class) p B?有人有想法吗?

P/S:方法名一定要一致。

最佳答案

直接调用A.p(self)即可,这不是super()设计支持的。请注意,您必须手动传入 self,因为 A.p() 是一个未绑定(bind)方法。

但是,您想重新考虑您的类设计。也许您想引入辅助方法;然后可以从 A.p()C.p() 调用其中一个,但不能从 B.p() 调用?这样一来,B.p() 就不必使用 super().p() ,只需重用这些辅助方法即可。

关于python - 从父类(super class)的父类(super class)调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37324353/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com