百科狗-知识改变命运!

pythonsuper的使用注意

百变鹏仔2年前 (2023-11-19)阅读数 30#技术干货
文章标签注意

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其实和父类没有实质性的关联

多重继承下,super就没有那么简单了。

#多重继承

classBase(object):

def__init__(self):

print('enterBase')

print('outBase')

classA(Base):

def__init__(self):

pythonsuper的使用注意

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培训机构:开发教育。

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)
{if $zbp->Config('yd1125')->foot}