欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python類的繼承實例詳解

系統 1606 0

python 類的繼承

對于許多文章講解python類的繼承,大多數都是說一些什么oop,多態等概念,我認為這樣可能對有一定基礎的開發者幫助不是那么大,不如直接用在各種情況下所寫的代碼,來展示對于某一種代碼情況,代碼運行會有什么效果。這樣可能對開發者的幫助更大。不說廢話,直接上代碼。

這里不區分經典類和新式類,下面分析的對新式類和經典類都適用

對于類中的__init__函數,只是一個初始化是調用的一個函數(ps:初始化和創建實例并不是一個過程,實例的創建是通過一個create函數來完成的),如果在子類中沒有顯示的聲明__init__函數,則子類就會調用父類的__init__函數,但是不會再調用父類的父類中的__init__函數,如果顯示的聲明了__init__ 函數,則在子類的初始化的時候就不會調用父類的初始化函數,只會調用子類中聲明的__init__函數, 同時在子類實例中也不會有父類__init__函數中聲明的屬性,

例子:

            
class animal():
 name="hh"
 sex="man"
 def __init__(self):
  self.height=10
  self.weight=50
 def deception(self):
  print "ansible.height:"+self.height+" animal.weight:"+self.weight
 def run(self):
  print "animal is running...."
class dog(animal):
 def __init__(self):
  pass
if __name__=="__main__":
 dg=dog()
 print dg.__dict__

          

此時運行的結果為

{}

當把dog類修改為如下時(ps:此時沒有顯示的聲明__init__方法):

            
class dog(animal):
 def run(self):
  print "dog is running..."

          

此時由于直接調用的父類animal的__init__方法,結果如下:

            
{'weight': 50, 'height': 10}
          

如果此時有一個類繼承dog類,此時會出現什么情況呢?(python解釋器先在子類中尋找__init__方法,如果沒有找到,再從父類中找,直到找到為止,并運行,并且不再運行父類的父類的__init__方法,此時沒有運行的__init__方法中的創建的屬性是沒有的,例如上面的例子,第一次運行時得到的例子中并沒有weight和height屬性)

            
class animal():
 name="hh"
 sex=""
 def __init__(self):
  self.height=10
  self.weight=50
 def deception(self):
  print "ansible.height:"+self.height+" animal.weight:"+self.weight
 def run(self):
  print "animal is running...."
class dog(animal):
 def __init__(self):
  pass
 def run(self):
  print "dog is running..."
class jinmao(dog):
 # def __init__(self):
 #  self.ji="jinmao"
 pass
if __name__=="__main__":
 dg=jinmao()
 print dg.__dict__

          

此時的結果一樣是

{}

在類的多繼承中會產生什么狀況呢?(在多繼承中會運行類的繼承參數中的第一個參數聲明的父類中的__init__函數,如果父類中沒有__init__函數,繼續尋找父類的父類中有沒有,以此類推。。。如果找到了頭還是沒有,則換為第二個參數聲明的父類,過程如第一個參數,知道找到__init__函數為止,如果都沒有找到,則不初始化),代碼可以根據前面例子自己測試。

對于在子類中調用父類中的方法的super的使用與特性。

總結: 如果想了解python虛擬機具體是怎么創建類的(具體到當加載一個.pyc文件時,是怎么通過c語言的代碼邏輯來把類對象放到一塊內存中的,我也在了解這方面的內容,希望咱們一塊探索)

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品AV一区二区三区久久 | 色就是色欧美 | av免费在线观看网站 | 热re91久久精品国产99热 | 伊人青青操 | 香港论理午夜电影网 | 免费成人福利视频 | 99久久久无码国产精品 | 国产日韩欧美中文 | 色婷婷六月丁香在线观看 | 日本三级视频 | 亚洲日韩在线视频 | 日韩日b视频 | 精品在线一区二区 | 欧美日韩性猛交xxxxx免费看 | 久久激情综合色丁香 | 欧美高清视频一区 | 亚洲精品久久久久久久久久久久久 | 国语一级毛片 | 日日撸视频 | 久久国产免费 | 91精选国产91在线观看 | 午夜资源 | 欧美一区二区三区四区视频 | 欧美大片欧美大片 | 人人爱国产| 日日操夜夜爽 | 性夜影院爽黄a爽在线看香蕉 | 日韩综合色| se999se男人最爱 | 日本高清色视频在线观看免费 | 91偷拍精品一区二区三区 | 日韩欧美不卡 | 91茄子在线观看 | 加勒比综合 | 久草国产在线观看 | 伊人久久精品成人网 | 国产精品v在线播放观看 | 69性影院在线观看国产精品87 | 国产裸体bbb视频 | 一区免费看 |