1、super()只能用于新式类中
所谓新式类,旧类的,关键就是看是不是有基类,有基类的就是形式类,比如class A(object),所以class A()自然就是旧式类了。
#单继承 classA(object): def__init__(self,a,b): self.a=a self.b=b defsayHello(self): print('thisisclassA,a={},b={}'.format(self.a,self.b)) classB(A): def__init__(self,a,b,c): super(B,self).__init__(a,b) self.c=c defsayHello(self): super(B,self).sayHello() print('thisisbcall') b=B('b','alsob','test') b.sayHello() #thisisclassA,a=b,b=alsob #thisisbcall
2、super 其实和父类没有实质性的关联
多重继承下,super就没有那么简单了。
#多重继承 classBase(object): def__init__(self): print('enterBase') print('outBase') classA(Base): def__init__(self): print('enterA') super(A,self).__init__() print('outA') classB(Base): def__init__(self): print('enterB') super(B,self).__init__() print('outB') classC(A,B): def__init__(self): print('enterC') super(C,self).__init__() print('outC') c=C() #enterC #enterA #enterB #enterBase #outBase #outB #outA #outC
以上就是python中super的使用注意,希望能对大家有所帮助。更多Python学习指路:python基础教程
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
上一篇
下一篇