class A():
def say(self):
print("A")
class B(A):
def say(self):
print("B")
class C(B):
def say(self,*args, **kwargs):
return super(C, self).say(*args, **kwargs)
我正在访问子级中的父方法,并打印B
,但我想从类A
访问方法,因为我们正在从类B
进行访问。
我知道我们可以在B类中添加super
,但我不想修改类B
。那么有没有选项直接在A
课程中从C
获取方法?
答案 0 :(得分:0)
您可以这样调用A.say(self)
:
class A():
def say(self):
print("A")
class B(A):
def say(self):
print("B")
class C(B):
def say(self):
A.say(self)
B.say(self)
print("C")
然后从终端测试它:
>>> a = A()
>>> a.say()
A
>>> b = B()
>>> b.say()
B
>>> c = C()
>>> c.say()
A
B
C
注意:我删除了args
和kwargs
,因为A
和B
类没有使用这些参数。如果您想让say
完全取消,只需致电A.say(self, *args, **kwargs)
,如果A.say
返回某些内容,您也可以将其退回