亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

python中子類繼承父類的__init__方法實(shí)例

原創(chuàng) 2017-01-12 13:26:34 321
摘要:前言使用Python寫過面向?qū)ο蟮拇a的同學(xué),可能對(duì) __init__ 方法已經(jīng)非常熟悉了,__init__方法在類的一個(gè)對(duì)象被建立時(shí),馬上運(yùn)行。這個(gè)方法可以用來對(duì)你的對(duì)象做一些你希望的 初始化 。注意:這個(gè)名稱的開始和結(jié)尾都是雙下劃線。父類Aclass A(object):  def __init__(self, name): &nbs

前言

使用Python寫過面向?qū)ο蟮拇a的同學(xué),可能對(duì) __init__ 方法已經(jīng)非常熟悉了,__init__方法在類的一個(gè)對(duì)象被建立時(shí),馬上運(yùn)行。這個(gè)方法可以用來對(duì)你的對(duì)象做一些你希望的 初始化 。

注意:這個(gè)名稱的開始和結(jié)尾都是雙下劃線。

父類A

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

子類不重寫__init__ , 實(shí)例化子類時(shí),會(huì)自動(dòng)調(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__時(shí),實(shí)例化子類,就不會(huì)調(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

為了能使用或擴(kuò)展父類的行為,最好顯示調(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

總結(jié)

以上就是關(guān)于python子類繼承父類的__init__方法的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

更多關(guān)于python中子類繼承父類的__init__方法實(shí)例請(qǐng)關(guān)注PHP中文網(wǎng)(ipnx.cn)其他文章!

發(fā)布手記

熱門詞條