gpt4 book ai didi

python - 如何在Python中访问对象的祖先

转载 作者:太空宇宙 更新时间:2023-11-03 15:38:02 25 4
gpt4 key购买 nike

假设类A继承自B,B继承自C。

class C():
def my_method(self):
pass

class B(C):
def my_method(self):
pass

class A(B):
def my_method(self):
# Call my_method from B
super(A, self).my_method()
# How can I call my_method from C here ?

问题:如何从 C 调用 my_method?

最佳答案

您可以通过直接调用“unbound”方法来调用 Cmy_method() 方法,并将 self 作为参数传递。例如:

class C(object):
def my_method(self):
print('C.my_method')

class B(C):
def my_method(self):
print('B.my_method')

class A(B):
def my_method(self):
print('A.my_method')
super(A, self).my_method() # calls B.my_method(self)
C.my_method(self) # calls C.my_method(self)

a = A()
a.my_method()

运行时,将打印以下内容(请注意,(object)super() 在 Python 2.x 上工作所必需的):

A.my_method
B.my_method
C.my_method

但是,正如其他人指出的那样,这可能不是实现您想要的目标的最佳方式。您能举一个具体的例子来说明您在上下文中想要实现的目标吗?

关于python - 如何在Python中访问对象的祖先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42370157/

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