python 子類繼承父類__init__(轉載)

來源:互聯網
上載者:User

標籤:div   item   height   alt   href   執行個體化   border   int   fun   

轉載:

http://www.jb51.net/article/100195.htm

 

前言

使用Python寫過物件導向的代碼的同學,可能對 __init__ 方法已經非常熟悉了,__init__方法在類的一個對象被建立時,馬上運行。這個方法可以用來對你的對象做一些你希望的 初始化 。

注意:這個名稱的開始和結尾都是雙底線。

父類A

?
123456 class A(object): def __init__(self, name):  self.name=name  print "name:", self.name def getName(self):  return ‘A ‘ + self.name

子類不重寫__init__ , 執行個體化子類時,會自動調用父類定義的__init__

?
1234567 class B(A): def getName(self):  return ‘B ‘+self.name  if __name__==‘__main__‘: b=B(‘hello‘) print b.getName()

執行

?
123 $python lei2.py name: helloB hello

但重寫了__init__時,執行個體化子類,就不會調用父類已經定義的__init__

?
1234567891011121314151617 class A(object): def __init__(self, name):  self.name=name  print "name:", self.name def getName(self):  return ‘A ‘ + self.name class B(A): def __init__(self, name):  print "hi"  self.name = name def getName(self):  return ‘B ‘+self.name if __name__==‘__main__‘: b=B(‘hello‘) print b.getName()

執行

?
123 $python lei2.py hiB hello

為了能使用或擴充父類的行為,最好顯示調用父類的__init__方法

?
123456789101112131415161718 class A(object): def __init__(self, name):  self.name=name  print "name:", self.name def getName(self):  return ‘A ‘ + self.name class B(A): def __init__(self, name):  super(B, self).__init__(name)  print "hi"  self.name = name def getName(self):  return ‘B ‘+self.name if __name__==‘__main__‘: b=B(‘hello‘) print b.getName()

執行

?
1234 $python lei2.pyname: hellohiB hello

總結

以上就是關於python子類繼承父類的__init__方法的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的協助,如果有疑問大家可以留言交流。

python 子類繼承父類__init__(轉載)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.