濮阳杆衣贸易有限公司

主頁 > 知識庫 > 一篇文章帶你搞懂Python類的相關(guān)知識

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

熱門標簽:沈陽人工外呼系統(tǒng)價格 富錦商家地圖標注 武漢外呼系統(tǒng)平臺 江西省地圖標注 如何申請400電話費用 沈陽外呼系統(tǒng)呼叫系統(tǒng) 池州外呼調(diào)研線路 外呼系統(tǒng)哪些好辦 沈陽防封電銷卡品牌

一、什么是類

類(class),作為代碼的父親,可以說它包裹了很多有趣的函數(shù)和方法以及變量,下面我們試著簡單創(chuàng)建一個吧。

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

二、類的方法

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

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

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

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

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

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

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

三、類的特性

類的特性,相信接觸過面向?qū)ο蟮男』锇閼摱贾?,封裝、繼承和多態(tài)。

1.封裝

講的就是將一個功能封裝到類中,這個很好理解。

2.繼承

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

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

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

當然,除了單一繼承,還有多繼承,它可以繼承兩個類的所有屬性和方法,只不過寫法與其他編程語言有點不同,它的多繼承就是遞歸繼承,不能同時繼承,也就是:

這樣就實現(xiàn)了多繼承,多繼承可以大大簡化代碼量。我們可以通過一些魔法方法來獲得父類的名稱以及說明。

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

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

3.多態(tài)

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

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

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

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

可以看到訪問不了值,因為沒有這個屬性,我們再來看看沒slots的時候:

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

裝飾器

直接在方法上運用裝飾器,十分方便。他有設置,獲取,刪除三個屬性,例如:

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

在類中定義值為property對象的類屬性

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

可以看到,這樣就實現(xiàn),那么現(xiàn)在我們寫一個稍微復雜點的,可以進行交互的動態(tài)修改屬性吧。

可以看到,我輸入屬性名和屬性值,如果你想做的更好,可以給它加其他功能,比如私有方法私有屬性,訪問其他類。總之功能多多,需要你自己動手親自實踐。

四、總結(jié)

通過對類的解讀,讓大家明白了,代碼的簡潔美觀有多重要,為了我們的程序不那么low,請學好類。

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

您可能感興趣的文章:
  • Python中的Nonetype類型怎么判斷
  • python數(shù)據(jù)類型相關(guān)知識擴展
  • 用 Python 元類的特性實現(xiàn) ORM 框架
  • 詳細總結(jié)Python類的多繼承知識
  • python 使用Tensorflow訓練BP神經(jīng)網(wǎng)絡實現(xiàn)鳶尾花分類
  • Python-typing: 類型標注與支持 Any類型詳解
  • Python進階學習之帶你探尋Python類的鼻祖-元類
  • python中必會的四大高級數(shù)據(jù)類型(字符,元組,列表,字典)
  • Python如何把不同類型數(shù)據(jù)的json序列化
  • Python基礎之元類詳解
  • Python入門學習之類的相關(guān)知識總結(jié)

標簽:常德 株洲 黑龍江 通遼 呂梁 銅川 潛江 阿里

巨人網(wǎng)絡通訊聲明:本文標題《一篇文章帶你搞懂Python類的相關(guān)知識》,本文關(guān)鍵詞  一篇,文章,帶你,搞懂,Python,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《一篇文章帶你搞懂Python類的相關(guān)知識》相關(guān)的同類信息!
  • 本頁收集關(guān)于一篇文章帶你搞懂Python類的相關(guān)知識的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    佳木斯市| 宜宾县| 大渡口区| 六安市| 湘潭市| 晴隆县| 汉源县| 全南县| 启东市| 鲜城| 城步| 大冶市| 冀州市| 盐山县| 霍城县| 富阳市| 贞丰县| 隆昌县| 宜兴市| 拜城县| 青龙| 伽师县| 凉城县| 绩溪县| 建湖县| 泗阳县| 滕州市| 金昌市| 涪陵区| 德阳市| 衡阳县| 文安县| 黔东| 芦山县| 天门市| 佛教| 邛崃市| 元氏县| 三原县| 故城县| 涿州市|