1 / 4
文档名称:

Python中super的用法实例supervlan.doc

格式:doc   大小:13KB   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Python中super的用法实例supervlan.doc

上传人:世界末末日 2022/10/25 文件大小:13 KB

下载得到文件列表

Python中super的用法实例supervlan.doc

文档介绍

文档介绍:该【Python中super的用法实例supervlan 】是由【世界末末日】上传分享,文档一共【4】页,该文档可以免费在线阅读,需要了解更多关于【Python中super的用法实例supervlan 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。Python中super的用法实例:supervlan
这篇文章主要介绍了Python中super的用法实例,本文比照了一般继承和super继承的相关内容,从运行结果上看,一般继承和super继承是一样的,但是其实它们的内部运行机制不一样,这一点在多重继承时表达得很明显,需要的朋友可以参考下
super是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是假如使用多继承,会涉及到查找挨次(MRO)、重复调用(钻石继承)等种种问题。总之前人留下的阅历就是:保持全都性。要不全部用类名调用父类,要不就全部用super,不要一半一半。
一般继承
代码如下:
classFooParent(object):
def__init__(self):
=“I“mtheparent.“
print“Parent“
defbar(self,message):
printmessage,“fromParent“
classFooChild(FooParent):
def__init__(self):
(self)
print“Child“
defbar(self,message):
(self,message)
print“Childbarfunction.“

if__name__==“__main__“:
fooChild=FooChild()
(“HelloWorld“)
super继承
代码如下:
classFooParent(object):
def__init__(self):
=“I“mtheparent.“
print“Parent“
defbar(self,message):
printmessage,“fromParent“
classFooChild(FooParent):
def__init__(self):
super(FooChild,self).__init__()
print“Child“
defbar(self,message):
super(FooChild,self).bar(message)
print“Childbarfuction“

if__name__==“__main__“:
fooChild=FooChild()
(“HelloWorld“)
程序运行结果一样,为:
代码如下:
Parent
Child
HelloWorldfromParent
Childbarfuction
I“mtheparent.
从运行结果上看,一般继承和super继承是一样的。但是其实它们的内部运行机制不一样,这一点在多重继承时表达得很明显。在super机制里可以保证公共父类仅被执行一次,至于执行的挨次,是根据mro进展的()。
留意super继承只能用于新式类,用于经典类时就会报错。
新式类:必需有继承的类,假如没什么想继承的,那就继承object
经典类:没有父类,假如此时调用super就会消失错误:『super()argument1mustbetype,notclassobj』