最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python SocketServer源碼深入解讀

 更新時間:2019年09月17日 14:49:06   作者:若如初見_you  
這篇文章主要介紹了python SocketServer源碼深入解讀,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

再看繼承

真正的大餐來之前,還是來點兒開胃菜!回顧一下關(guān)于類的繼承的知識:

我們先看上面的代碼,這是一個簡單的類繼承,我們可以看到父類Base和子類Son,它們中各有一個Testfunc方法,當我們實例化子類的對象sonobj時,可以看到初始化方法中黃色框框調(diào)用了Testfunc,那么這個時候執(zhí)行的是哪個類里面的代碼呢?我會告訴你執(zhí)行的是子類里面的方法,不信就自己試試吧,代碼在下面~

為什么呢?其實這里是繞了一個圈,所以把很多人繞暈了,包括我!后來想想其實很容易,我們看最右邊的圖:

如果這樣看,我們是不是就明白了?其實這兩段代碼表示的是一個意思,盡管Son繼承了Base類,父子類中都有同樣的方法,但是由于我們實例化了子類的對象,所以這個在初始化方法里的self.Testfunc,self指的是子類的對象,當然也就先調(diào)用子類中的方法啦。

所以盡管在第一個例子中,初始化方法在父類執(zhí)行,但是還是改變不了它是子類對象的本質(zhì),當我們使用self去調(diào)用Testfunc方法時,始終是先調(diào)用子類的方法。我們可以這樣理解,盡管兒子繼承了父親的財產(chǎn),但是花錢的時候,還是要先花自己的~~~

#_*_coding:utf-8_*_
__author__ = 'Eva_J'
class Base(object):
  def __init__(self,name):
    self.name = name
    self.Testfunc()
  def Testfunc(self):
    print 'do Base Testfunc'
class Son(Base):
  def Testfunc(self):
    print 'do Son Testfunc'
sonobj = Son('sonobj')
inherit Code

看完剛剛的代碼,我們就知道了對象和self的真實意義,現(xiàn)在再來回憶一下關(guān)于繼承的順序問題:    

看上面的代碼,我們猜測一下,執(zhí)行之后,控制臺會打印什么呢?先揭曉答案,會打印Base2方法中的內(nèi)容,原因很簡單:盡管這三個類中都有同樣的Testfunc方法,但是,由于計算機在找方法的時候,遵循的順序是:Base2,Son,Base,所以它會先找到Base2類,而這個類中剛好有它要找的方法,它也就歡歡喜喜的拿去執(zhí)行啦!

#_*_coding:utf-8_*_
__author__ = 'Eva_J'
class Base(object):
  def Testfunc(self):
    print 'do Base Testfunc'
class Son(Base):
  def __init__(self,name):
    self.name = name
    self.Testfunc()
  def Testfunc(self):
    print 'do Son Testfunc'
class Base2(object):
  def Testfunc(self):
    print 'do Base2 Testfunc'
class GrandSon(Base2,Son):
  pass
#sonobj = Son('sonobj')
sonobj = GrandSon('sonobj')
inherit2 Code

畫個簡易類圖

剛剛我們只是寫了一個小程序,來說明類之間的繼承和對象調(diào)用方法之間的聯(lián)系,但是如果我們想要hold住一個繼承關(guān)系復(fù)雜的源碼邏輯,就需要類圖來幫忙!如果你覺得我要教你畫類圖那就大錯特錯了。。。懶人癥重癥患者是懶得畫那種東西的。。。嘻,先看圖!

對照類圖看源碼

根據(jù)上面的圖,我們就拿到了threadingTCPServer的相關(guān)類,并且搞清楚了它們之間的繼承關(guān)系和方法,接下來我們對照這張簡易類圖來看看代碼執(zhí)行的過程:

初始化相關(guān)過程:

執(zhí)行serve_forever的相關(guān)代碼:

就是這樣,我們一路按照調(diào)用軌跡去尋找,每次看到一個調(diào)用都先對照上面的簡易類圖,看看有沒有重名方法,如果有,就要找到最近的方法并查看里面的內(nèi)容,以此類推:按照這種方法,就會感覺所有代碼都在一個文件一樣,媽媽再也不用擔心我看不懂源碼,哈?。?!當然啦,這種方法比較山寨,自己心里知道就好,不要告訴別人你其實是這樣看懂源碼的~~~

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實現(xiàn)過迷宮小游戲示例詳解

    Python實現(xiàn)過迷宮小游戲示例詳解

    這篇文章主要介紹的是基于Python實現(xiàn)一個簡單的過迷宮小游戲,文中的示例代碼講解詳細,對我們學(xué)習(xí)Python有一定的幫助,感興趣的可以學(xué)習(xí)一下
    2021-12-12
  • 一文掌握Python描述符與裝飾器的神奇妙用

    一文掌握Python描述符與裝飾器的神奇妙用

    Python 是一種多范式編程語言,具有靈活的特性,其中可調(diào)用實例、嵌套函數(shù)、描述符和裝飾器是其功能強大的特性之一,這些概念對于編寫高效、優(yōu)雅的代碼至關(guān)重要
    2024-01-01
  • tensorboard顯示空白的解決

    tensorboard顯示空白的解決

    今天小編就為大家分享一篇tensorboard顯示空白的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python 實現(xiàn)的IP 存活掃描腳本

    python 實現(xiàn)的IP 存活掃描腳本

    這篇文章主要介紹了python 實現(xiàn)的IP 存活掃描腳本,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • python簡單實現(xiàn)旋轉(zhuǎn)圖片的方法

    python簡單實現(xiàn)旋轉(zhuǎn)圖片的方法

    這篇文章主要介紹了python簡單實現(xiàn)旋轉(zhuǎn)圖片的方法,涉及Python中image模塊使用技巧,需要的朋友可以參考下
    2015-05-05
  • django連接數(shù)據(jù)庫獲取數(shù)據(jù)的簡單步驟記錄

    django連接數(shù)據(jù)庫獲取數(shù)據(jù)的簡單步驟記錄

    數(shù)據(jù)庫中各種表結(jié)構(gòu)已經(jīng)創(chuàng)建好了,甚至連數(shù)據(jù)都有了,此時我要用Django管理這個數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于django連接數(shù)據(jù)庫獲取數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • python學(xué)習(xí)教程之socket庫的基本使用(網(wǎng)絡(luò)編程-套接字)

    python學(xué)習(xí)教程之socket庫的基本使用(網(wǎng)絡(luò)編程-套接字)

    Python中的socket模塊提供了網(wǎng)絡(luò)編程中的套接字(socket)功能,通過套接字我們可以實現(xiàn)不同計算機之間的通信,這篇文章主要給大家介紹了關(guān)于python學(xué)習(xí)教程之socket庫的基本使用,需要的朋友可以參考下
    2024-07-07
  • CentOS6.9 Python環(huán)境配置(python2.7、pip、virtualenv)

    CentOS6.9 Python環(huán)境配置(python2.7、pip、virtualenv)

    這篇文章主要介紹了CentOS6.9 Python環(huán)境配置(python2.7、pip、virtualenv)方法,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-05-05
  • 一文讀懂Python的’=='和’is’用法

    一文讀懂Python的’=='和’is’用法

    探索Python世界的'=='與'is',一個看似簡單卻隱藏玄機的話題,本指南將帶你輕松讀懂它們背后的故事,解鎖編程中的這道難題,開始我們的快速之旅,釋放代碼的潛能吧!
    2024-01-01
  • 詳解Python類的定義與實例

    詳解Python類的定義與實例

    這篇文章給大家介紹Python類的定義與實例,下面是一個使用?NewSpaceGraph?類的示例,展示了如何實例化該類并調(diào)用其方法,感興趣的朋友跟隨小編一起看看吧
    2024-04-04

最新評論

眉山市| 江口县| 弋阳县| 开远市| 瑞昌市| 蒲江县| 漠河县| 景东| 南漳县| 泰顺县| 屏南县| 西充县| 班玛县| 利津县| 盈江县| 库尔勒市| 荣昌县| 晴隆县| 西宁市| 龙游县| 长岛县| 栖霞市| 松阳县| 泰宁县| 庆安县| 克山县| 岢岚县| 邵武市| 平罗县| 淮安市| 永和县| 天镇县| 潼关县| 洪江市| 兰考县| 木兰县| 乃东县| 平原县| 罗田县| 长葛市| 邵阳市|