我有一个代码如下:
class A():
def something():
#Do something
class B(A):
def something():
super(B, self).something()
#Do something
class C(B):
def something():
if VeryRareSpecificCase:
super(super(C,self)).something()
else:
super(C, self).something()
#Do something
但是,它引发了错误TypeError:必须是type,而不是super。在
如果不使用复杂的菱形继承,则可以使用以下方法跳过链中的父级:
如果您真的只有
C > B > A > object
,如您的MCVE所示,这应该是安全的。但是,如果您有比这更复杂的东西,您必须直接使用mro并精确地指定您需要手动执行的行为。在相关问题 更多 >
编程相关推荐