Python super()使用注意事项,super在python中是什么意思

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: