真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python中多態(tài)指的是什么

小編給大家分享一下python中多態(tài)指的是什么,相信大部分人都還不怎么了解,因此分享這邊文章給大家學習,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學習方法吧!

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供樂昌網(wǎng)站建設(shè)、樂昌做網(wǎng)站、樂昌網(wǎng)站設(shè)計、樂昌網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、樂昌企業(yè)網(wǎng)站模板建站服務,10年樂昌做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。

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

可能會被先后賦值不同的類對象,例如:

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

運行結(jié)果為:

賦值的是 CLanguage 類的實例對象
賦值的是 CPython 類的實例對象

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

下面程序是對上面代碼的改寫:

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 類,且各自都重寫了父類的 say() 方法。從運行結(jié)果可以看出,同一變量 a 在執(zhí)行同一個 say() 方法時,由于 a 實際表示不同的類實例對象,因此 a.say() 調(diào)用的并不是同一個類中的 say() 方法,這就是多態(tài)。

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

繼續(xù)對上面的程序進行改寫:

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方法

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

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

以上是python中多態(tài)指的是什么的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


當前名稱:python中多態(tài)指的是什么
瀏覽地址:http://weahome.cn/article/pjdcec.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部