拷贝构造函数可以重载吗,重载拷贝类构造函数

  拷贝构造函数可以重载吗,重载拷贝类构造函数

  Python继承的构造函数的描述。在Python中,如果子类不覆盖__init__,则在实例化时会自动调用父类的__init__:

  class Father(object):def _ _ init _ _(self,name):self . name=name print( name:% s %(self . name))def getName(self):return Father self . name class Son(Father):def getName(self):return Son self . name if _ _ name _ _= _ main _ _ :Son=Son( yujix )print(Son . getName())结果为:

  Name: yujxSon yujx如果在重写__init__时实例化子类,将不会调用已经由父类定义的__init__:

  class Father(object):def _ _ init _ _(self,Name):self . Name=Name print( Name:% s %(self . Name))def getName(self):return Father self . Name class Son(Father):def _ _ init _ _(self,Name):print( hi )self . Name=Name def getName(self):return Son self . Name if _ _ Name _= _ _ main _ :Son=Son( yujix )print(Son . getName())结果为:

  Hisunyujx因此,如果需要子类中父类的构造函数,就需要显式调用父类的构造函数,或者不重写父类的构造函数。调用父类的构造函数怎么办?接下来就带大家学习一下超级关键词的用法。

  Super()函数super()函数是一个用来调用父类(超类)的方法。

  Super用来解决多重继承的问题。使用单继承时用类名直接调用父类方法没问题,但如果使用多重继承,就会涉及到找序(MRO)、重复调用(钻石继承)等各种问题。

  MRO是一个类的方法解析序列表,实际上是继承父类方法时的序列表。

  语法:

  Super (type [,object-or-type])typeclass;对象或类型——类,通常是自身。Python3.x和Python2.x的一个区别是Python3可以直接使用super()。xxx而不是超(类,自我)。xxx:

  # Python3.x实例类a: def add (self,x): y=x1 print (y)类b (a): def add (self,X): super()。add(x)b=b()b . add(2)# 3 # python 2 . x实例类A(object): # Python2.x记得继承对象def add (self,x): y=x1print (y)类b (a): def add (self)

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • windows10怎么打开服务器管理器,windows10系统服务怎么打开
  • excel文档处理教程,excel帮助文件
  • 笔记本装系统多少钱-如何一键重装系统好,笔记本装系统多少钱-如何一键重装系统进入
  • microsoft edge的功能,microsoft edge是系统自带的吗
  • 罗技g102和雷蛇蝰蛇怎么选,蝰蛇v2mini和罗技g102哪个好
  • cad部分线条不显示,cad中画了条线后,没显示怎么办
  • python的源文件后缀名是什么-,在python中可以作为源文件后缀名的是
  • python求次方函数,n次方怎么计算
  • mybatis if判断,mybatis 中使用if else 进行判断
  • GTX970显卡跑分,gtx970m跑分多少正常
  • ps2018如何保存图片,ps2019怎么保存图片到桌面
  • Spring Security定义多个过滤器链(10)(springboot多个过滤器)
  • 哪里能看飞卢,飞卢在哪看免费
  • 无法删除正在使用的文件夹 如何强制删除正在被占用的文件夹
  • steam市场比例,steam销售量最多的游戏
  • 留言与评论(共有 条评论)
       
    验证码: