python中super的使用注意
1、super()只能用于新式類中
所謂新式類,舊類的,關鍵就是看是不是有基類,有基類的就是形式類,比如classA(object),所以classA()自然就是舊式類了。
#單繼承
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其實和父類沒有實質(zhì)性的關聯(lián)
多重繼承下,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學習教程請關注IT培訓機構:千鋒教育。