Python super()使用注意事项,super在python中是什么意思
本文主要介绍python中的super,Python中的super,名为superclass,可以简单理解为父类的__init__函数。本文重点介绍Super的具体功能,有需要的朋友可以参考一下。
00-1010技术背景分析与案例测试结果汇总汇总版权声明
目录
python中的Super,名为superclass,可以简单理解为执行父类的__init__函数。因为在python中,无论是一对一继承,还是一个子类继承多个父类,都会涉及到执行顺序的问题。然后本文重点介绍超级的具体作用。
技术背景
通过设计这样一个案例,我们可以明确super前后的逻辑关系:首先定义一个父类initial,其中有参数值param和func,然后用一个子类new继承父类initial。继承后,在子类的__init__函数中,超执行前后打印参数值param和函数func的返回值,相关代码如下:
#定义父类
类别初始(对象):
def __init__(self):
打印(“此打印来自初始对象”)
#定义父类参数
self.param=3
#定义父类函数
定义功能(自身):
返回1
#定义子类
新类别(初始):
打印(“此打印来自新对象”)
#打印子类函数值
print (self.func())
#执行父类初始化函数
超级(新,自己)。__init__()
#打印父类参数值
打印(自身参数)
self.param=4
#定义子类函数
返回2
if __name__==__main__:
新()
代码的执行结果如下:
这是新物品上的指纹
2
这个指纹来自最初的物体
3
案例测试
首先,我们注意到父类initial的__init__函数中的print语句是在super之后输出的,这说明super函数正在执行父类的初始化操作。那么如果不执行super,那么新子类从初始父类的继承在哪里呢?答案是父类的成员函数,比如这样一个案例:
类别初始(对象):
def __init__(self):
打印(“此打印来自初始对象”)
self.param=3
定义功能(自身):
返回1
新类别(初始):
def __init__(self):
打印(“此打印来自新对象”)
print (self.func())
超级(新,自己)。__init__()
打印(自身参数)
self.param=4
if __name__==__main__:
新()
实际上,子类中重载的成员函数被删除了,所以结果如下:
这是新物品上的指纹
一
这个指纹来自最初的物体
3
可以发现,在执行super之前,可以打印父类的func函数值。所以python中继承的逻辑是这样的:
正是因为父类中的成员变量只能在执行super时初始化,所以无法在super之前访问父类的成员变量。
结果分析
通过一个实际python案例的设计,说明了python面向对象技术类3354继承中必须使用的超级函数的逻辑。其实我们可以把python中类的继承理解为一个过程:我们在括号中定义父类的时候,实际上已经引用了父类的成员函数,但是没有执行父类的初始化函数。子类的初始化函数执行时,会检查父类的成员函数是否重载,如果重载,直接覆盖。只有在执行了super之后,它才相当于父类的初始化函数。此时,可以访问父类的成员变量。
总结概要
本文的首发链接是:https://www.cnblogs.com/dechinphy/p/super.html
作者:德钦菲
更多原创文章请参考:https://www.cnblogs.com/dechinphy/。
奖励特别链接:https://www.cnblogs.com/dechinphy/gallery/image/379634.html
腾讯云同步:https://cloud.tencent.com/developer/column/91958
这篇关于python中super的文章是什么?文章到此结束。更多python中的超级内容,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望你以后能支持风行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。