python中SocketServer有什么用-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)python中SocketServer有什么用,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

貢山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),貢山網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為貢山1000多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的貢山做網(wǎng)站的公司定做!

回顧一下關(guān)于類的繼承的知識(shí):

python中SocketServer有什么用

python中SocketServer有什么用

python中SocketServer有什么用

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

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

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

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

#_*_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

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

python中SocketServer有什么用

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

畫個(gè)簡易類圖

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

python中SocketServer有什么用

對(duì)照類圖看源碼

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

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

python中SocketServer有什么用

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

python中SocketServer有什么用

關(guān)于“python中SocketServer有什么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

分享標(biāo)題:python中SocketServer有什么用-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://muchs.cn/article48/dschhp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)網(wǎng)站設(shè)計(jì)公司、外貿(mào)建站、ChatGPT、網(wǎng)站設(shè)計(jì)、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司