日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python多态_多态是什么?为什么要使用多态?

發布時間:2024/1/23 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python多态_多态是什么?为什么要使用多态? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

多態

所謂多態:定義時的類型和運行時的類型不一樣,此時就成為多態 ,多態的概念是應用于Java和C#這一類強類型語言中,而Python崇尚“鴨子類型”。

鴨子類型:雖然我想要一只"鴨子",但是你給了我一只鳥。 但是只要這只鳥走路像鴨子,叫起來像鴨子,游泳也像鴨子,我就認為這是鴨子。

Python的多態,就是弱化類型,重點在于對象參數是否有指定的屬性和方法,如果有就認定合適,而不關心對象的類型是否正確。

· Python偽代碼實現Java或C#的多態

class?F1(object):????def?show(self):????????print('F1.show')class?S1(F1):????def?show(self):????????print('S1.show')class?S2(F1):????def?show(self):????????print('S2.show')# 由于在Java或C#中定義函數參數時,必須指定參數的類型# 為了讓Func函數既可以執行S1對象的show方法,又可以執行S2對象的show方法,# 所以在def Func的形參中obj的類型是 S1和S2的父類即F1# # 而實際傳入的參數是:S1對象和S2對象def?Func(F1 obj):?????"""Func函數需要接收一個F1類型或者F1子類的類型"""?????print(obj.show())?s1_obj = S1()Func(s1_obj) # 在Func函數中傳入S1類的對象 s1_obj,執行 S1 的show方法,結果:S1.show?s2_obj = S2()Func(s2_obj) # 在Func函數中傳入Ss類的對象 ss_obj,執行 Ss 的show方法,結果:S2.show

通俗點理解:定義obj這個變量是說的類型是:F1的類型,但是在真正調用Func函數時給其傳遞的不一定是F1類的實例對象,有可能是其子類的實例對象, 這種情況就是所謂的多態。

· Python “鴨子類型”

class?F1(object):????def?show(self):????????print('F1.show')class?S1(F1):????def?show(self):????????print('S1.show')class?S2(F1):????def?show(self):????????print('S2.show')def?Func(obj):??????# python是弱類型,即無論傳遞過來的是什么,obj變量都能夠指向它,這也就沒有所謂的多態了(弱化了這個概念)????print(obj.show())?s1_obj = S1()Func(s1_obj)?s2_obj = S2()Func(s2_obj)

更多資料私信領取~、

總結

以上是生活随笔為你收集整理的python多态_多态是什么?为什么要使用多态?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。