日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)Python教程:一文帶你了解python中的多態(tài)

我們都知道,Python 是弱類型語(yǔ)言,其最明顯的特征是在使用變量時(shí),無(wú)需為其指定具體的數(shù)據(jù)類型。這會(huì)導(dǎo)致一種情況,即同一變量

創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括臺(tái)江網(wǎng)站建設(shè)、臺(tái)江網(wǎng)站制作、臺(tái)江網(wǎng)頁(yè)制作以及臺(tái)江網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,臺(tái)江網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到臺(tái)江省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

可能會(huì)被先后賦值不同的類對(duì)象,例如:

class CLanguage:
    def say(self):
        print("賦值的是 CLanguage 類的實(shí)例對(duì)象")
class CPython:
    def say(self):
        print("賦值的是 CPython 類的實(shí)例對(duì)象")
a = CLanguage()
a.say()
a = CPython()
a.say()

運(yùn)行結(jié)果為:

賦值的是 CLanguage 類的實(shí)例對(duì)象
賦值的是 CPython 類的實(shí)例對(duì)象

可以看到,a 可以被先后賦值為 CLanguage 類和 CPython 類的對(duì)象,但這并不是多態(tài)。類的多態(tài)特性,還要滿足以下 2 個(gè)前提條件:繼承:多態(tài)一定是發(fā)生在子類和父類之間;重寫(xiě):子類重寫(xiě)了父類的方法。

下面程序是對(duì)上面代碼的改寫(xiě):

class CLanguage:
    def say(self):
        print("調(diào)用的是 Clanguage 類的say方法")
class CPython(CLanguage):
    def say(self):
        print("調(diào)用的是 CPython 類的say方法")
class CLinux(CLanguage):
    def say(self):
        print("調(diào)用的是 CLinux 類的say方法")
a = CLanguage()
a.say()
a = CPython()
a.say()
a = CLinux()
a.say()

執(zhí)行結(jié)果

調(diào)用的是 Clanguage 類的say方法
調(diào)用的是 CPython 類的say方法
調(diào)用的是 CLinux 類的say方法

可以看到,CPython 和 CLinux 都繼承自 CLanguage 類,且各自都重寫(xiě)了父類的 say() 方法。從運(yùn)行結(jié)果可以看出,同一變量 a 在執(zhí)行同一個(gè) say() 方法時(shí),由于 a 實(shí)際表示不同的類實(shí)例對(duì)象,因此 a.say() 調(diào)用的并不是同一個(gè)類中的 say() 方法,這就是多態(tài)。

但是,僅僅學(xué)到這里,讀者還無(wú)法領(lǐng)略 Python 類使用多態(tài)特性的精髓。其實(shí),Python 在多態(tài)的基礎(chǔ)上,衍生出了一種更靈活的編程機(jī)制。

繼續(xù)對(duì)上面的程序進(jìn)行改寫(xiě):

class WhoSay:
    def say(self,who):
        who.say()
class CLanguage:
    def say(self):
        print("調(diào)用的是 Clanguage 類的say方法")
class CPython(CLanguage):
    def say(self):
        print("調(diào)用的是 CPython 類的say方法")
class CLinux(CLanguage):
    def say(self):
        print("調(diào)用的是 CLinux 類的say方法")
a = WhoSay()
#調(diào)用 CLanguage 類的 say() 方法
a.say(CLanguage())
#調(diào)用 CPython 類的 say() 方法
a.say(CPython())
#調(diào)用 CLinux 類的 say() 方法
a.say(CLinux())

程序執(zhí)行結(jié)果為:

調(diào)用的是 Clanguage 類的say方法
調(diào)用的是 CPython 類的say方法
調(diào)用的是 CLinux 類的say方法

此程序中,通過(guò)給 WhoSay 類中的 say() 函數(shù)添加一個(gè) who 參數(shù),其內(nèi)部利用傳入的 who 調(diào)用 say() 方法。這意味著,當(dāng)調(diào)用 

WhoSay 類中的 say() 方法時(shí),我們傳給 who 參數(shù)的是哪個(gè)類的實(shí)例對(duì)象,它就會(huì)調(diào)用那個(gè)類中的 say() 方法。


網(wǎng)頁(yè)名稱:創(chuàng)新互聯(lián)Python教程:一文帶你了解python中的多態(tài)
標(biāo)題網(wǎng)址:http://www.5511xx.com/article/ccosiss.html