欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python類繼承與子類實(shí)例初始化用法分析

 更新時(shí)間:2015年04月17日 15:56:11   作者:走向星辰大海  
這篇文章主要介紹了python類繼承與子類實(shí)例初始化用法,實(shí)例分析了Python類的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了python類繼承與子類實(shí)例初始化用法。分享給大家供大家參考。具體分析如下:

[ 先貼參考書籍原文(中文英文對(duì)照)]
__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__()調(diào)用它, 以保證能夠適當(dāng)?shù)爻跏蓟幕惒糠?例如: "BaseClass.__init__(self, [args...])"作為構(gòu)造器的特殊情況, 它沒有值被返回, 如果返回某個(gè)值, 會(huì)在運(yùn)行時(shí)拋出異常TypeError.

1.子類定義了__init__方法時(shí)若未顯示調(diào)用基類__init__方法,python不會(huì)幫你調(diào)用,解釋運(yùn)行都Ok

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

2.子類未定義__init__方法時(shí),python會(huì)自動(dòng)幫你調(diào)用首個(gè)基類的__init__方法,注意是首個(gè)。即:子類繼承自多個(gè)基類時(shí),只有第一個(gè)基類的__init__方法會(huì)被調(diào)用到:

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__方法時(shí),若此時(shí)子類顯示調(diào)用基類__init__方法時(shí),python向上超找基類的基類的__init__方法并調(diào)用,實(shí)質(zhì)同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

希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論