国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python學(xué)習(xí)之路-面向?qū)ο?三個(gè)基本特征

這篇具有很好參考價(jià)值的文章主要介紹了Python學(xué)習(xí)之路-面向?qū)ο?三個(gè)基本特征。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Python學(xué)習(xí)之路-面向?qū)ο?三個(gè)基本特征

三個(gè)基本特征

  1. 封裝:根據(jù)職責(zé)將屬性和方法封裝到一個(gè)抽象的類中
  2. 繼承:實(shí)現(xiàn)代碼的重用,相同的代碼不需要重復(fù)的編寫(xiě)
  3. 多態(tài):不同的對(duì)象調(diào)用相同的方法,產(chǎn)生不同的執(zhí)行結(jié)果,增加代碼的靈活度

封裝

封裝是面向?qū)ο缶幊痰囊淮筇攸c(diǎn),面向?qū)ο缶幊痰牡谝徊骄褪菍傩院头椒ǚ庋b到一個(gè)抽象的類中,外界使用類創(chuàng)建對(duì)象,然后讓對(duì)象調(diào)用方法,對(duì)象方法的細(xì)節(jié)都被封裝在類的內(nèi)部。

{{< admonition tip “提示” true >}}

一個(gè)對(duì)象的屬性可以是另外一個(gè)類創(chuàng)建的對(duì)象

{{< /admonition >}}文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-788022.html

繼承

單繼承

概念

子類擁有父類的所有方法和屬性

語(yǔ)法
class 類名(父類名):

    pass

{{< admonition tip “提示” true >}}

子類繼承自父類,可以直接享受父類中已經(jīng)封裝好的方法,不需要再次開(kāi)發(fā).子類中應(yīng)該根據(jù)職責(zé),封裝子類特有的屬性和方法

{{< /admonition >}}

傳遞性

子類擁有父類以及父類的父類中封裝的所有屬性和方法,例:C 類從 B 類繼承,B 類又從 A 類繼承,那么 C 類就具有 B 類和 A 類的所有屬性和方法

重寫(xiě)

子類擁有父類的所有方法和屬性,子類繼承自父類,可以直接享受父類中已經(jīng)封裝好的方法,不需要再次開(kāi)發(fā),當(dāng)父類的方法實(shí)現(xiàn)不能滿足子類需求時(shí),可以對(duì)方法進(jìn)行重寫(xiě)(override)。重寫(xiě)父類方法有兩種情況:

  • 覆蓋父類的方法:如果在開(kāi)發(fā)中,父類的方法實(shí)現(xiàn)和子類的方法實(shí)現(xiàn)完全不同,就可以使用覆蓋的方式,在子類中重新編寫(xiě)父類的方法實(shí)現(xiàn)。具體的實(shí)現(xiàn)方式,就相當(dāng)于在子類中定義了一個(gè)和父類同名的方法并且實(shí)現(xiàn),重寫(xiě)之后在運(yùn)行時(shí),只會(huì)調(diào)用子類中重寫(xiě)的方法,而不再會(huì)調(diào)用父類封裝的方法

  • 對(duì)父類方法進(jìn)行擴(kuò)展:子類的方法實(shí)現(xiàn)中包含父類的方法實(shí)現(xiàn)父類原本封裝的方法實(shí)現(xiàn)是子類方法的一部分就可以使用擴(kuò)展的方式。在子類中重寫(xiě)父類的方法在需要的位置使用 super().父類方法 來(lái)調(diào)用父類方法的執(zhí)行代碼其他的位置針對(duì)子類的需求,編寫(xiě)子類特有的代碼實(shí)現(xiàn)

{{< admonition tip “提示” true >}}

關(guān)于 super:在 Pythonsuper是一個(gè)特殊的類。super() 就是使用 super 類創(chuàng)建出來(lái)的對(duì)象,最常使用的場(chǎng)景就是在重寫(xiě)父類方法時(shí),調(diào)用在父類中封裝的方法實(shí)現(xiàn)。

{{< /admonition >}}

{{< admonition tip “提示” true >}}

在開(kāi)發(fā)時(shí),父類名super() 兩種方式不要混用,如果使用當(dāng)前子類名調(diào)用方法,會(huì)形成遞歸調(diào)用,出現(xiàn)死循環(huán)。

{{< /admonition >}}

私有屬性和私有方法

私有屬性、方法是對(duì)象的隱私,不對(duì)外公開(kāi),外界以及子類都不能直接訪問(wèn)。私有屬性、方法通常用于做一些內(nèi)部的事情。

子類對(duì)象不能在自己的方法內(nèi)部,直接訪問(wèn) 父類的私有屬性或私有方法。子類對(duì)象可以通過(guò)父類的公有方法間接訪問(wèn)到私有屬性或私有方法

多繼承

概念

子類可以擁有多個(gè)父類,并且具有所有父類的 屬性和方法。

語(yǔ)法
class 子類名(父類名1, 父類名2...)
    pass

{{< admonition warning “注意事項(xiàng)” true >}}

如果父類之間存在同名的屬性或者方法,應(yīng)該盡量避免使用多繼承。

{{< /admonition >}}

{{< admonition note “補(bǔ)充” true >}}

  1. super().__init__相對(duì)于類名.__init__,在單繼承上用法基本無(wú)差
  2. 但在多繼承上有區(qū)別,super方法能保證每個(gè)父類的方法只會(huì)執(zhí)行一次,而使用類名的方法會(huì)導(dǎo)致方法被執(zhí)行多次,具體看前面的輸出結(jié)果
  3. 多繼承時(shí),使用super方法,對(duì)父類的傳參數(shù),應(yīng)該是由于Pythonsuper的算法導(dǎo)致的原因,必須把參數(shù)全部傳遞,否則會(huì)報(bào)錯(cuò)
  4. 單繼承時(shí),使用super方法,則不能全部傳遞,只能傳父類方法所需的參數(shù),否則會(huì)報(bào)錯(cuò)
  5. 多繼承時(shí),相對(duì)于使用類名.__init__方法,要把每個(gè)父類全部寫(xiě)一遍, 而使用super方法,只需寫(xiě)一句話便執(zhí)行了全部父類的方法,這也是為何多繼承需要全部傳參的一個(gè)原因

{{< /admonition >}}

了解

新式類:以 object 為基類的類,推薦使用

舊式類:不以 object 為基類的類,不推薦使用

Python 3.x 中定義類時(shí),如果沒(méi)有指定父類,會(huì)默認(rèn)使用 object 作為該類的基類 —— Python 3.x 中定義的類都是新式類

{{< admonition tip “提示” true >}}

object Python 為所有對(duì)象提供的基類,提供有一些內(nèi)置的屬性和方法,可以使用 dir 函數(shù)查看。

今后在定義類時(shí),如果沒(méi)有父類,建議統(tǒng)一繼承自 object

{{< /admonition >}}

多態(tài)

多態(tài)不同的子類對(duì)象調(diào)用相同的父類方法,產(chǎn)生不同的執(zhí)行結(jié)果。多態(tài)可以增加代碼的靈活度,以繼承和重寫(xiě)父類方法為前提,是調(diào)用方法的技巧,不會(huì)影響到類的內(nèi)部設(shè)計(jì)。

{{< admonition tip “提示” true >}}

多態(tài)更容易編寫(xiě)出出通用的代碼,做出通用的編程,以適應(yīng)需求的不斷變化!

{{< /admonition >}}

到了這里,關(guān)于Python學(xué)習(xí)之路-面向?qū)ο?三個(gè)基本特征的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包