最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一篇文章帶你搞懂Python類(lèi)的相關(guān)知識(shí)

 更新時(shí)間:2021年05月20日 17:25:29   作者:程序員啟航  
今天我們要說(shuō)的是面向?qū)ο蟮暮诵?----類(lèi),類(lèi)能幫我們把復(fù)雜的事情變得有條理,有順序,希望大家通過(guò)學(xué)習(xí)類(lèi)能改善自己的編碼風(fēng)格,使代碼變得更為好看,更加通俗易懂,需要的朋友可以參考下

一、什么是類(lèi)

類(lèi)(class),作為代碼的父親,可以說(shuō)它包裹了很多有趣的函數(shù)和方法以及變量,下面我們?cè)囍?jiǎn)單創(chuàng)建一個(gè)吧。

Image

這樣就算創(chuàng)建了我們的第一個(gè)類(lèi)了。大家可以看到這里面有一個(gè)self,其實(shí)它指的就是類(lèi)aa的實(shí)例。每個(gè)類(lèi)中的函數(shù)只要你不是類(lèi)函數(shù)或者靜態(tài)函數(shù)你都得加上這個(gè)self,當(dāng)然你也可以用其他的代替這個(gè)self,只不過(guò)這是python中的寫(xiě)法,就好比Java 中的this。

二、類(lèi)的方法

1.靜態(tài)方法,類(lèi)方法,普通方法

類(lèi)一般常用有三種方法,即為static method(靜態(tài)方法),class method(類(lèi)方法)和self(普通方法)。下面我們來(lái)看看他們之間的區(qū)別吧。

Image

從這里可以看出我們的三種方法有一個(gè)共同點(diǎn),那就是既可以在實(shí)例中訪問(wèn),也可以直接用類(lèi)訪問(wèn)。不同的是,類(lèi)實(shí)例訪問(wèn)時(shí)是不會(huì)執(zhí)行init方法的,也就是沒(méi)有進(jìn)行初始化。如果用類(lèi)直接訪問(wèn),可以清楚看到它的運(yùn)行軌跡。如果想在一個(gè)方法里調(diào)用其他方法則只需:實(shí)例名.方法名 或者 類(lèi)名.方法名 即可。

2.安全方法,私有方法,安全變量,私有變量

安全方法一般是為了保護(hù)類(lèi)的安全性,為了限制訪問(wèn)權(quán)限而設(shè)立的。一般只需在方法前加單下劃線即可,那么私有方法怎么訪問(wèn)呢?和其他方法訪問(wèn)方法一樣。

Image

安全方法:可以在外部進(jìn)行調(diào)用并且其他方法也能訪問(wèn)到,它允許本身的任何方法進(jìn)行訪問(wèn),并可在外部調(diào)用,安全屬性也是;

私有方法:只能在私有方法內(nèi)部調(diào)用,不能通過(guò)類(lèi)名或者類(lèi)的實(shí)例名來(lái)調(diào)用,所以你可以在其他方法中通過(guò)self.ww來(lái)調(diào)用或者cls.ww來(lái)調(diào)用,這樣就做到了私有的功能。

三、類(lèi)的特性

類(lèi)的特性,相信接觸過(guò)面向?qū)ο蟮男』锇閼?yīng)該都知道,封裝、繼承和多態(tài)。

1.封裝

講的就是將一個(gè)功能封裝到類(lèi)中,這個(gè)很好理解。

2.繼承

就是一個(gè)類(lèi)和另一個(gè)類(lèi)的主體結(jié)構(gòu)一致,就好比父親和兒子的區(qū)別,兒子繼承父親所有的特點(diǎn),這使得他可以少做一些重復(fù)勞動(dòng),并且他還有自己的一套,這就叫繼承,下面我們通過(guò)實(shí)例說(shuō)明:

Image

可以看出我們實(shí)現(xiàn)了繼承,就是簡(jiǎn)單的在子類(lèi)中添加了父類(lèi)的名字,并且寫(xiě)了個(gè)spuer,用來(lái)繼承父類(lèi)的所有的特性。雖然父類(lèi)的所有東西我們都能繼承,但并不是說(shuō)所有的你都能用的,比如說(shuō)父類(lèi)的私有方法或者私有屬性:

Image

那么如果你想要使用它們那該怎么辦呢?很簡(jiǎn)單,你只需將私有方法或者屬性添加到父類(lèi)某個(gè)可以公開(kāi)訪問(wèn)的類(lèi)中,然后子類(lèi)就能使用這些父類(lèi)定義的私有方法或者屬性了。

Image

當(dāng)然,除了單一繼承,還有多繼承,它可以繼承兩個(gè)類(lèi)的所有屬性和方法,只不過(guò)寫(xiě)法與其他編程語(yǔ)言有點(diǎn)不同,它的多繼承就是遞歸繼承,不能同時(shí)繼承,也就是:

Image

這樣就實(shí)現(xiàn)了多繼承,多繼承可以大大簡(jiǎn)化代碼量。我們可以通過(guò)一些魔法方法來(lái)獲得父類(lèi)的名稱(chēng)以及說(shuō)明。

__bases__  #查看類(lèi)的所有父類(lèi)
__base__  #查看類(lèi)的父類(lèi)
__doc__    #查看類(lèi)的使用文檔,在類(lèi)中以三引號(hào)擴(kuò)起來(lái)的部分都是文檔內(nèi)容

我們注意到,只需繼承一個(gè)類(lèi)就實(shí)現(xiàn)了多繼承,這是因?yàn)閟on類(lèi)之前繼承過(guò)father類(lèi),所以現(xiàn)在你必須通過(guò)son類(lèi)繼承father類(lèi),后面給它初始化,如果是兩個(gè)沒(méi)有任何關(guān)聯(lián)的類(lèi),則需要寫(xiě)兩個(gè)類(lèi)名進(jìn)去,并且初始化。

3.多態(tài)

多態(tài)的應(yīng)用使得類(lèi)更靈活,它可以共享某個(gè)方法,給所有的類(lèi)對(duì)象使用。我們來(lái)看看:

Image

這里是通過(guò)對(duì)一個(gè)函數(shù)傳一個(gè)對(duì)象,使得它擁有了類(lèi)的特征功能,這也就是鴨子類(lèi)型。

4.動(dòng)態(tài)修改值

當(dāng)一個(gè)類(lèi)需要大量創(chuàng)建實(shí)例時(shí),可以通過(guò)魔法方法slots來(lái)聲明。這樣可以減少內(nèi)存消耗。但是它只是動(dòng)態(tài)的修改,并沒(méi)有綁定到類(lèi)的實(shí)例中,而且類(lèi)只能訪問(wèn)slots里設(shè)定的值。

Image

可以看到訪問(wèn)不了值,因?yàn)闆](méi)有這個(gè)屬性,我們?cè)賮?lái)看看沒(méi)slots的時(shí)候:

現(xiàn)在正常了,另外,子類(lèi)的slots為它本身和父類(lèi)的slots,父類(lèi)只是本身。這樣極大省內(nèi)存,但是這樣好像還不夠Python,因?yàn)樗木窒扌?,讓我決定使用property。property有兩種創(chuàng)建方式,我們來(lái)看看:

裝飾器

直接在方法上運(yùn)用裝飾器,十分方便。他有設(shè)置,獲取,刪除三個(gè)屬性,例如:

Image

可以看到,非常簡(jiǎn)單就實(shí)現(xiàn)了功能,少寫(xiě)了很多代碼哦。

在類(lèi)中定義值為property對(duì)象的類(lèi)屬性

使用property函數(shù)來(lái)實(shí)現(xiàn):

Image

可以看到,這樣就實(shí)現(xiàn),那么現(xiàn)在我們寫(xiě)一個(gè)稍微復(fù)雜點(diǎn)的,可以進(jìn)行交互的動(dòng)態(tài)修改屬性吧。

Image

Image

可以看到,我輸入屬性名和屬性值,如果你想做的更好,可以給它加其他功能,比如私有方法私有屬性,訪問(wèn)其他類(lèi)??傊δ芏喽啵枰阕约簞?dòng)手親自實(shí)踐。

四、總結(jié)

通過(guò)對(duì)類(lèi)的解讀,讓大家明白了,代碼的簡(jiǎn)潔美觀有多重要,為了我們的程序不那么low,請(qǐng)學(xué)好類(lèi)。

到此這篇關(guān)于一篇文章帶你搞懂Python類(lèi)的相關(guān)知識(shí)的文章就介紹到這了,更多相關(guān)Python類(lèi)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談Python淺拷貝、深拷貝及引用機(jī)制

    淺談Python淺拷貝、深拷貝及引用機(jī)制

    本篇文章主要介紹了Python淺拷貝、深拷貝及引用機(jī)制,詳細(xì)的介紹了淺拷貝、深拷貝的介紹和區(qū)別,有興趣的可以了解一下。
    2016-12-12
  • python-itchat 獲取微信群用戶(hù)信息的實(shí)例

    python-itchat 獲取微信群用戶(hù)信息的實(shí)例

    今天小編就為大家分享一篇python-itchat 獲取微信群用戶(hù)信息的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Pycharm打開(kāi).py文件和項(xiàng)目的幾種實(shí)現(xiàn)方式

    Pycharm打開(kāi).py文件和項(xiàng)目的幾種實(shí)現(xiàn)方式

    這篇文章主要介紹了Pycharm打開(kāi).py文件和項(xiàng)目的幾種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 在Python中使用Mako模版庫(kù)的簡(jiǎn)單教程

    在Python中使用Mako模版庫(kù)的簡(jiǎn)單教程

    這篇文章主要介紹了在Python中使用Mako模版庫(kù)的簡(jiǎn)單教程,包括在Django或者Tornado框架中集成Mako的方法,需要的朋友可以參考下
    2015-04-04
  • python雙向隊(duì)列deque的使用

    python雙向隊(duì)列deque的使用

    本文主要介紹了python雙向隊(duì)列deque的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Python對(duì)象體系深入分析

    Python對(duì)象體系深入分析

    這篇文章主要介紹了Python對(duì)象體系,以實(shí)例的形式進(jìn)行了較為深入的分析,需要的朋友可以參考下
    2014-10-10
  • 17條提高工作效率的Python技巧分享

    17條提高工作效率的Python技巧分享

    這篇文章主要介紹了17條提高工作效率的Python技巧分享,掌握這些Python技巧可以讓我們的生活更加輕松,本文就日常中經(jīng)常使用到的Python技巧進(jìn)行歸納總結(jié),對(duì)于常用的17條技巧均給出了完整的代碼示例和具體講解,需要的朋友可以參考下
    2022-01-01
  • Python實(shí)現(xiàn)解壓當(dāng)天創(chuàng)建的ZIP文件到指定文件夾中

    Python實(shí)現(xiàn)解壓當(dāng)天創(chuàng)建的ZIP文件到指定文件夾中

    這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)解壓當(dāng)天創(chuàng)建的ZIP文件到指定文件夾中,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考下
    2024-03-03
  • Python httplib,smtplib使用方法

    Python httplib,smtplib使用方法

    使用httplib訪問(wèn)某個(gè)url然后獲取返回的內(nèi)容和使用smtplib發(fā)送郵件的腳本實(shí)例代碼
    2008-09-09
  • 如何利用python制作時(shí)間戳轉(zhuǎn)換工具詳解

    如何利用python制作時(shí)間戳轉(zhuǎn)換工具詳解

    這篇文章主要給大家介紹了關(guān)于如何利用python制作時(shí)間戳轉(zhuǎn)換工具的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09

最新評(píng)論

峨边| 二连浩特市| 会泽县| 宝山区| 托克逊县| 阿合奇县| 定南县| 丽江市| 湖北省| 陆丰市| 浠水县| 会同县| 乐山市| 温泉县| 疏勒县| 宾阳县| 博湖县| 长顺县| 淄博市| 修武县| 浮梁县| 赞皇县| 定日县| 夏邑县| 长子县| 聂拉木县| 大荔县| 阳朔县| 保亭| 亳州市| 昂仁县| 大丰市| 阜康市| 垣曲县| 古蔺县| 霍山县| 丹棱县| 呼图壁县| 涟水县| 万宁市| 青神县|