香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

python类继承与子类实例初始化用法分析


时间:2021-11-29 16:22 作者:admin610456


本文实例讲述了python/' target='_blank'>python类继承与子类实例初始化用法。分享给大家供大家参考。具体分析如下:

[ 先贴参考书籍原文(中文英文对照)]
__init__方法介绍:
If a base class has an __init__() method the derived class's __init__() method must explicitly call it to ensure proper initialization of the base class part of the instance; for example: "BaseClass.__init__(self, [args...])"
As a special contraint on constructors, no value may be returned; doing so will cause a TypeError to be raised at runtime.

如果其基类也具有__init__(), 必须显式地在__init__()调用它, 以保证能够适当地初始化它的基类部分;例如: "BaseClass.__init__(self, [args...])"作为构造器的特殊情况, 它没有值被返回, 如果返回某个值, 会在运行时抛出异常TypeError.

1.子类定义了__init__方法时若未显示调用基类__init__方法,Python不会帮你调用,解释运行都Ok

class A():  def __init__(self):    print 'a'class B(A):  def __init__(self):    print 'b'if __name__=='__main__':  b=B()>>> b

2.子类未定义__init__方法时,python会自动帮你调用首个基类的__init__方法,注意是首个。即:子类继承自多个基类时,只有第一个基类的__init__方法会被调用到:

class A:  def __init__(self):    print 'a'class B:  def __init__(self):    print 'b'class C(B):  def __init__(self):    print 'c'  passclass D1(A,B,C):  passclass D2(B,A,C):  passclass D3(C,B,A):  passif(__name__=='__main__'):  print 'd1------->:'  d1=D1()  print 'd2------->:'  d2=D2()  print 'd3------->:'  d3=D3()>>> d1------->:ad2------->:bd3------->:c

3)基类未定义__init__方法时,若此时子类显示调用基类__init__方法时,python向上超找基类的基类的__init__方法并调用,实质同2

class A:  def __init__(self):    print 'a'class B:  def __init__(self):    print 'b'class C1(B,A):  passclass C2(A,B):  passclass D1(C1):  def __init__(self):    C1.__init__(self)class D2(C2):  def __init__(self):    C2.__init__(self)if(__name__=='__main__'):  print 'd1------->:'  d1=D1()  print 'd2------->:'  d2=D2()>>> d1------->:bd2------->:a

希望本文所述对大家的Python程序设计有所帮助。

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)