python类继承与子类实例初始化用法分析
本文实例讲述了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' pass class D1(A,B,C): pass class D2(B,A,C): pass class D3(C,B,A): pass if(__name__=='__main__'): print 'd1------->:' d1=D1() print 'd2------->:' d2=D2() print 'd3------->:' d3=D3() >>> d1------->: a d2------->: b d3------->: 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): pass class C2(A,B): pass class 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------->: b d2------->: a
希望本文所述对大家的Python程序设计有所帮助。
相关文章
Python的Flask框架中Flask-Admin库的简单入门指引
这篇文章主要介绍了一个Python的Flask框架中Flask-Admin库简单入门的指引,包括介绍和简单的部署等,需要的朋友可以参考下2015-04-04为什么str(float)在Python 3中比Python 2返回更多的数字
很多朋友质疑为什么str(float)在Python 3中比Python 2返回更多的数字,在Python 2.7中,一个float的repr返回最接近十七位数的十进制数;这足以精确地识别每个可能的IEEE浮点值。对此问题很多朋友都很疑问,下面小编给大家简单介绍下,需要的朋友可以参考下2018-10-10使用python将CSV和Excel表格数据导入到Word表格
在不同格式的文档之间进行数据传输是非常重要的操作,例如将CSV和Excel表格数据导入到Word文档中,不仅可以实现数据的有效整合与展示,还能极大地提升工作效率和文档的专业性,本文将介绍如何使用Python将CSV和Excel表格数据导入到Word文档中并创建表格2024-09-09
最新评论