91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python面向對象特性 - 多態

發布時間:2020-07-19 02:28:13 來源:網絡 閱讀:300 作者:LJ_baby 欄目:編程語言

Python中的多態

多態

多態指的是一類事物有多種形態。多態的實現需要依賴于繼承~

import abc

class File(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def read(self):
        pass

    @abc.abstractmethod
    def write(self):
        pass

class Txt(File):   # 文本數據的讀寫
    def read(self):
        print('讀取文本數據')

    def write(self):
        print('寫入文本數據')

class Process(File):   # 進程數據的讀寫
    def read(self):
        print('讀取進程數據')

    def write(self):
        print('寫入進程數據')

txt = Txt()
process = Process()

txt.read()
process.read()

上述示例中,Txt,Process都繼承自 接口類File,且都實現了 read,write方法,但read,write方法的實現都各不相同。Txt,Process為同一類事物,不同的形態體現在它們都有read,write方法,但是實現的方式都不一樣~

多態性

多態性是多態的一種應用:在不考慮實例類型的情況下使用實例。使用的場景往往是:調用不同對象的同名方法,不同的對象會用不同的方式來實現類似的功能;
 
調用者無需關心對象之間的差異性,只需根據不同的場景調用不同對象的同名方法即可~

def read(obj):
    obj.read()

def write(obj):
    obj.write()

read(txt)
read(process)

write(txt)
write(process)

Txt,Process類中的read,write方法是應對不同的場景實現數據的讀取和寫入,所以在使用函數read,write時候只需要根據場景選擇對象即可~

鴨子類型

關于列表和元組的示例:

m_lst = [1, 2, 3]
m_tuple = ('a', 'b', 'c', 'd')
print(m_lst.__len__())     # 3
print(m_tuple.__len__())     # 4

print(m_lst.count(1))     # 1
print(m_tuple.count('c'))     # 1

Python面向對象特性 - 多態

Python面向對象特性 - 多態

 
通過源碼可以看到 list 和 tuple 都是繼承自 object 類,相互之間沒有關系,但是它們都有很多功能類似的同名方法。這就是Python崇尚的鴨子類型,兩個類之間有很多的相似之處,功能也類似,但是這兩個類之間沒有繼承關系,也不是繼承于同一個接口類或者抽象類,而是兩個獨立的類,這就保證了程序組件的松耦合度~
 
例如上述的Txt,Process類也可以通過這種方式來實現:

class Txt():   # 文本數據的讀寫
    def read(self):
        print('讀取文本數據')

    def write(self):
        print('寫入文本數據')

class Process():   # 進程數據的讀寫
    def read(self):
        print('讀取進程數據')

    def write(self):
        print('寫入進程數據')

.................^_^

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

博兴县| 麦盖提县| 德阳市| 武邑县| 固阳县| 福建省| 项城市| 杭锦旗| 咸阳市| 政和县| 石狮市| 宽甸| 汶上县| 榕江县| 奈曼旗| 松滋市| 平定县| 黑河市| 偃师市| 通江县| 永川市| 神木县| 澎湖县| 正蓝旗| 杂多县| 广宗县| 五原县| 佛教| 洛南县| 昌乐县| 佛坪县| 瑞安市| 抚远县| 万山特区| 宜昌市| 苗栗市| 玉山县| 泾源县| 溧阳市| 镇康县| 大城县|