欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

python函數(shù)的多態(tài) python多態(tài)的概念

python為什么沒有多態(tài)?使用什么類型來替代多態(tài)?

python不支持多態(tài),也不用支持多態(tài),python是一種多態(tài)語言,崇尚鴨子類型。在程序設(shè)計(jì)中,鴨子類型(英語:ducktyping)是動態(tài)類型的一種風(fēng)格。在這種風(fēng)格中,一個對象有效的語義,不是由繼承自特定的類或?qū)崿F(xiàn)特定的接口,而是由當(dāng)前方法和屬性的集合決定。這個概念的名字來源于由JamesWhitcombRiley提出的鴨子測試,鴨子測試可以這樣表述:當(dāng)看到一只鳥走起來像鴨子、游泳起來像鴨子、叫起來也像鴨子,那么這只鳥就可以被稱為鴨子。在鴨子類型中,關(guān)注的不是對象的類型本身,而是它是如何使用的。例如,在不使用鴨子類型的語言中,我們可以編寫一個函數(shù),它接受一個類型為鴨的對象,并調(diào)用它的走和叫方法。在使用鴨子類型的語言中,這樣的一個函數(shù)可以接受一個任意類型的對象,并調(diào)用它的走和叫方法。如果這些需要被調(diào)用的方法不存在,那么將引發(fā)一個運(yùn)行時錯誤。任何擁有這樣的正確的走和叫方法的對象都可被函數(shù)接受的這種行為引出了以上表述,這種決定類型的方式因此得名。

10年積累的做網(wǎng)站、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有扎賚特免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

Python中的面向?qū)ο螅ǜ呒墸┲接蟹椒ā⒍嗬^承、多態(tài)

特征:私有屬性與私有方法不能從外部被調(diào)用,也不能被子類繼承

唯一寫法:在屬性或方法前面加上__(兩個下劃線)

我們寫一個簡單的例子,創(chuàng)建一個類,包含私有方法、私有屬性、普通方法、普通屬性,并生成一個實(shí)例

私有屬性和私有方法可以從內(nèi)部被調(diào)用(總不能我寫了,但是哪都不讓用吧)

我們試試在類里再加入一個新的方法,調(diào)用私有方法和屬性

可以看到,私有屬性和私有方法是可以在類內(nèi)部被調(diào)用的。

舉個私有屬性應(yīng)用場景的例子

二。object類

我們試一下

三。多繼承

一個子類可以繼承多個父類,用逗號隔開

多個父類中有同名方法時,按照繼承順序進(jìn)行調(diào)用

四。多態(tài)

當(dāng)不同的實(shí)例,有同名的方法時,我們可以一個函數(shù),傳入不同的實(shí)例,執(zhí)行對應(yīng)的方法。

我們定義一個貓和一個狗的類,兩個類中都有'叫'的方法。并各生成一個實(shí)例。

定義一個函數(shù),用函數(shù)來調(diào)用'叫'的方法

這就叫多態(tài)。

什么是python多態(tài)

讓具有不同功能的函數(shù)可以使用相同的函數(shù)名,這樣就可以用一個函數(shù)名調(diào)用不同內(nèi)容(功能)的函數(shù)。

Python中多態(tài)的特點(diǎn)

1、只關(guān)心對象的實(shí)例方法是否同名,不關(guān)心對象所屬的類型;

2、對象所屬的類之間,繼承關(guān)系可有可無;

3、多態(tài)的好處可以增加代碼的外部調(diào)用靈活度,讓代碼更加通用,兼容性比較強(qiáng);

4、多態(tài)是調(diào)用方法的技巧,不會影響到類的內(nèi)部設(shè)計(jì)。

python 多態(tài) 協(xié)議詳解

接口(python 中的協(xié)議)的多種不同的實(shí)現(xiàn)方式即為多態(tài)。多態(tài)的作用,就是為了類在繼承和派生的時候,保證使用“家譜”中任一類的實(shí)例的某一屬性時的正確調(diào)用。

可以看到,在上面的代碼中,只要實(shí)現(xiàn)了 Dock 類中的 swimming 和 Walk 方法,那么這個類就可以被叫做 Dock 類

應(yīng)用場景 如: for 循環(huán), 在python 中 for 循環(huán)只能用于可迭代對象, 那么, 我自己定義的類實(shí)現(xiàn)了 __iter__協(xié)議(接口),這個實(shí)例類就是一個可迭代對象,可以被for 循環(huán)使用

python 中定義協(xié)議類協(xié)議使用 @abstractmethod 裝飾器,@abstractmethod 裝飾過的類是不能進(jìn)行初始化的,相對于c++中的純虛函數(shù)類

這個類只能當(dāng)做協(xié)議(接口)類

python中到底“多態(tài)”是什么!!!

Python是一種純粹的面向?qū)ο笳Z言。面向?qū)ο缶幊讨械乃拇筇卣鞣謩e是:抽象、封裝、繼承和多態(tài)。多態(tài)根據(jù)上下文,對象可以采用多種形式。程序?qū)⒋_定該對象每次執(zhí)行所需的含義或用法,從而減少了重復(fù)代碼。

我國有句俗語:“龍生九子,各有不同”。這就是多態(tài)。多態(tài)是同一類事物具有的多種形態(tài)。多態(tài)是面向?qū)ο缶幊痰闹匾攸c(diǎn)之一。

Python本身就是一種多態(tài)語言:

上述程序中,參數(shù)a和b可以接收不同的數(shù)據(jù)類型。當(dāng)a和b同時是數(shù)字類型時,add()函數(shù)將進(jìn)行加法運(yùn)算;當(dāng)a和b同時是字符串類型或列表類型時,add()函數(shù)將進(jìn)行拼接運(yùn)算。

下面用一個示例來介紹計(jì)算機(jī)編程語言中的多態(tài)。

上述程序中,定義了四個類,分別是Animal類、People類、Dog類和Pig類,其中People類、Dog類和Pig類都繼承了Animal類。這就體現(xiàn)了同一類事物的多種形態(tài)。這四個類都有一個talk()方法。試著調(diào)用talk()方法,代碼如下:

上述程序中,調(diào)用Func()函數(shù)為同一個操作,但調(diào)用的參數(shù)是不同的,即調(diào)用了不同的實(shí)例作為參數(shù)。由運(yùn)行結(jié)果可知,有不同的類創(chuàng)建不同的實(shí)例,以不同的實(shí)例作為參數(shù)時,調(diào)用talk()得到的打印結(jié)果是不同的,這是因?yàn)槊總€實(shí)例具有不同的實(shí)現(xiàn)方式,這就是多態(tài)性的體現(xiàn)。

多態(tài)性是同一個操作因作用實(shí)例不同而表現(xiàn)出不同實(shí)現(xiàn)方式的特性。多態(tài)性增加了程序的靈活性,以不變應(yīng)萬變,無論實(shí)例千變?nèi)f化,使用者都是以同一種形式去調(diào)用;多態(tài)性還增加了程序可擴(kuò)展性,通過繼承創(chuàng)建新的類,子類可以使用父類的方法,也可以使用自己重寫的方法。

關(guān)于深度學(xué)習(xí)的基礎(chǔ)問題可以看下這個網(wǎng)頁的視頻教程,網(wǎng)頁鏈接,希望我的回答能幫到你。

新聞標(biāo)題:python函數(shù)的多態(tài) python多態(tài)的概念
當(dāng)前網(wǎng)址:http://www.chinadenli.net/article44/dodcehe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)自適應(yīng)網(wǎng)站網(wǎng)站收錄移動網(wǎng)站建設(shè)App設(shè)計(jì)網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)