亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python 面向?qū)ο笾鄳B(tài)

系統(tǒng) 2599 0

多態(tài)

多態(tài)指的是一類事物有多種形態(tài)

動物有多種形態(tài):人,狗,豬

          
            import abc
class Animal(metaclass=abc.ABCMeta): #同一類事物:動物
    @abc.abstractmethod
    def talk(self):
        pass

class People(Animal): #動物的形態(tài)之一:人
    def talk(self):
        print('say hello')

class Dog(Animal): #動物的形態(tài)之二:狗
    def talk(self):
        print('say wangwang')

class Pig(Animal): #動物的形態(tài)之三:豬
    def talk(self):
        print('say aoao')
          
        

文件有多種形態(tài):文本文件,可執(zhí)行文件

          
            import abc
class File(metaclass=abc.ABCMeta): #同一類事物:文件
    @abc.abstractmethod
    def click(self):
        pass

class Text(File): #文件的形態(tài)之一:文本文件
    def click(self):
        print('open file')

class ExeFile(File): #文件的形態(tài)之二:可執(zhí)行文件
    def click(self):
        print('execute file')
          
        

多態(tài)性

一 什么是多態(tài)動態(tài)綁定(在繼承的背景下使用時,有時也稱為多態(tài)性)

多態(tài)性是指在不考慮實(shí)例類型的情況下使用實(shí)例

在面向?qū)ο蠓椒ㄖ幸话闶沁@樣表述多態(tài)性:
向不同的對象發(fā)送同一條消息(!!!obj.func():是調(diào)用了obj的方法func,又稱為向obj發(fā)送了一條消息func),不同的對象在接收時會產(chǎn)生不同的行為(即方法)。
也就是說,每個對象可以用自己的方式去響應(yīng)共同的消息。所謂消息,就是調(diào)用函數(shù),不同的行為就是指不同的實(shí)現(xiàn),即執(zhí)行不同的函數(shù)。

比如:老師.下課鈴響了(),學(xué)生.下課鈴響了(),老師執(zhí)行的是下班操作,學(xué)生執(zhí)行的是放學(xué)操作,雖然二者消息一樣,但是執(zhí)行的效果不同

多態(tài)性

          
            peo=People()
dog=Dog()
pig=Pig()

#peo、dog、pig都是動物,只要是動物肯定有talk方法
#于是我們可以不用考慮它們?nèi)叩木唧w是什么類型,而直接使用
peo.talk()
dog.talk()
pig.talk()

#更進(jìn)一步,我們可以定義一個統(tǒng)一的接口來使用
def func(obj):
    obj.talk()
          
        

鴨子類型

逗比時刻:

  Python崇尚鴨子類型,即‘如果看起來像、叫聲像而且走起路來像鴨子,那么它就是鴨子’

python程序員通常根據(jù)這種行為來編寫程序。例如,如果想編寫現(xiàn)有對象的自定義版本,可以繼承該對象

也可以創(chuàng)建一個外觀和行為像,但與它無任何關(guān)系的全新對象,后者通常用于保存程序組件的松耦合度。

例1:利用標(biāo)準(zhǔn)庫中定義的各種‘與文件類似’的對象,盡管這些對象的工作方式像文件,但他們沒有繼承內(nèi)置文件對象的方法

例2:序列類型有多種形態(tài):字符串,列表,元組,但他們直接沒有直接的繼承關(guān)系

          
            #二者都像鴨子,二者看起來都像文件,因而就可以當(dāng)文件一樣去用
class TxtFile:
    def read(self):
        pass

    def write(self):
        pass

class DiskFile:
    def read(self):
        pass
    def write(self):
        pass
          
        

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美在线香蕉在线现视频 | 亚洲乱码中文字幕久久 | 国产野花视频天堂视频免费 | www.国产一区二区三区 | 日本一级毛片在线看 | 俄罗斯美女逼 | 欧美色p| 337p日本大胆欧洲色噜噜高清 | 黄片a级毛片 | 久久频这里精品99香蕉久网址 | 中文字幕综合久久久久 | 亚洲六月丁香婷婷综合 | 久99久热| 五月婷婷伊人 | 国产欧美亚洲另类第一页 | 天天摸日日 | 久久国产精品99国产精 | 久久99国产精品久久欧美 | 亚洲欧美一区二区视频 | 中文字幕不卡一区2021 | 日本免费一区二区三区 | 精品视频亚洲 | 国产精品成人免费视频不卡 | 久久久久国产一级毛片高清板 | 成人午夜啪啪免费网站 | 欧美成人毛片在线视频 | 99视频久久精品久久 | 日韩精品福利视频一区二区三区 | 国产成人+亚洲欧洲 | 精品亚洲欧美高清不卡高清 | 亚洲综合网站久久久 | 四虎影视久久久 | 国产精品成人一区二区 | 国产精品婷婷久久爽一下 | 免费中文字幕不卡视频 | 久久午夜精品 | 九九久久国产精品大片 | 一级a美女毛片 | 色综合亚洲欧美在线 | 黄色小视频在线免费观看 | 亚洲国产精品一区 |