由于自己的python是速成的,所以很多小知识都不太清楚。今天在学pytorch的时候,再次遇到了python2的父类继承的写法,本着积累的知识点的心态,上网查了一手。
super(CLASS, INSTANCE).__init__()
等效于
mro = INSTANCE.__class__.mro()
X = mro[mro.index(CLASS)+1] #该类的前一个不一定是它的父类
X.__init__()
因此在单继承中,
class C(object):
def __init__(self):
print('C')
class (C):
def __init__(self):
super(C, self).__init__()
print('D')
super(D. self).init() 相当于初始化了D的父类C。