关于python中super类的问题?


class CounterList(list):
def __init__(self,*args):
super().__init__(*args)
self.counter=0
def __getitem__(self,index):
self.counter+=1
return super(CounterList,self).__getitem__(index)
中,为什么最后一句调用超类CounterList而不是类List?

幕布斯7119047
浏览 878回答 1
1回答

慕尼黑8549860

super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。总之前人留下的经验就是:保持一致性。要不全部用类名调用父类,要不就全部用 super,不要一半一半。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python