python中子類繼承父類的__init__方法實例
前言
使用Python寫過面向對象的代碼的同學,可能對 __init__
方法已經(jīng)非常熟悉了,__init__
方法在類的一個對象被建立時,馬上運行。這個方法可以用來對你的對象做一些你希望的 初始化 。
注意:這個名稱的開始和結尾都是雙下劃線。
父類A
class A(object): def __init__(self, name): self.name=name print "name:", self.name def getName(self): return 'A ' + self.name
子類不重寫__init__
, 實例化子類時,會自動調(diào)用父類定義的__init__
class B(A): def getName(self): return 'B '+self.name if __name__=='__main__': b=B('hello') print b.getName()
執(zhí)行
$python lei2.py name: hello B hello
但重寫了__init__
時,實例化子類,就不會調(diào)用父類已經(jīng)定義的__init__
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()
執(zhí)行
$python lei2.py hi B hello
為了能使用或擴展父類的行為,最好顯示調(diào)用父類的__init__
方法
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()
執(zhí)行
$python lei2.py name: hello hi B hello
總結
以上就是關于python子類繼承父類的__init__方法的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關文章
Python基于多線程實現(xiàn)抓取數(shù)據(jù)存入數(shù)據(jù)庫的方法
這篇文章主要介紹了Python基于多線程實現(xiàn)抓取數(shù)據(jù)存入數(shù)據(jù)庫的方法,結合實例形式分析了Python使用數(shù)據(jù)庫類與多線程類進行數(shù)據(jù)抓取與寫入數(shù)據(jù)庫操作的具體使用技巧,需要的朋友可以參考下2018-06-06python 用lambda函數(shù)替換for循環(huán)的方法
今天小編就為大家分享一篇python 用lambda函數(shù)替換for循環(huán)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06