溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python的類和實(shí)例的屬性有哪些

發(fā)布時間:2021-11-25 09:53:18 來源:億速云 閱讀:171 作者:iii 欄目:互聯(lián)網(wǎng)科技

這篇文章主要介紹“python的類和實(shí)例的屬性有哪些”,在日常操作中,相信很多人在python的類和實(shí)例的屬性有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”python的類和實(shí)例的屬性有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

類命名空間與實(shí)例命名空間

創(chuàng)建類時會創(chuàng)建它的命名空間,用來存儲類中定義的所有名字,這些名字稱為屬性。屬性有兩種:一是數(shù)據(jù),二是代碼塊(又稱函數(shù)或方法)。

創(chuàng)建實(shí)例時會創(chuàng)建它的命名空間,用來存放單向類指針和實(shí)例的屬性。實(shí)例可通過類指針訪問類的屬性,而類不能訪問實(shí)例的屬性。另外python支持多繼承,即類指針可以有多個。

訪問實(shí)例.屬性時,若在它的命名空間找不到,解釋器會通過類指針去類(父類、祖父類等)的命名空間里查找,若都沒有找到則報錯。

修改實(shí)例的屬性時,若在它的命名空間中有此屬性,則修改之。若實(shí)例無此屬性而類(父類、祖父類等)中有,則會在實(shí)例的命名空間中創(chuàng)建該屬性,并不會修改類(父類、祖父類)的屬性。

class Animal:kind = '動物'def __init__(self, name):self.name = namedef eat(self):print(f'{self.name}正在進(jìn)食!')white_cat = Animal('白貓')white_cat.kind = '貓'print(white_cat.kind)print(Animal.kind)out:貓
動物

從上述案例中可以看到,修改實(shí)例white_cat的kind屬性,Animal的kind屬性不會變化。

關(guān)于self

self實(shí)質(zhì)是實(shí)例在內(nèi)存中的地址,在創(chuàng)建實(shí)例時會自動將它作為第一參數(shù)傳給類的__init__函數(shù)。

當(dāng)然你也可以給它取別的名字,但改名會造成他人閱讀代碼很困惑,所以不建議改名!

類和實(shí)例的屬性

  1. 查看類和實(shí)例的屬性有兩種方法:
    dir(類名):列出屬性名列表。注意其中有很多是object類中定義的屬性。
    類名.__dict__:列出屬性字典,key為屬性名,value為屬性值。

  2. 類和實(shí)例常用的特殊屬性
    類名.__name__ 類的名字
    類名.__doc__ 類的說明文檔
    類名.__base__ 類的第一父類
    類名.__bases__ 類所有父類構(gòu)成的元組
    類名.__dict__ 類的屬性字典
    類名.__module__ 類定義所在的模塊
    實(shí)例.__class__ 實(shí)例對應(yīng)的類

這里舉一個特殊例子,通過實(shí)例的特殊屬性__class__來實(shí)例化另外一個實(shí)例:

class Animal:'''動物類'''kind = '動物'def __init__(self, name):self.name = namedef eat(self):print(f'{self.name}正在進(jìn)食!')white_cat = Animal('白貓')white_cat.kind = '貓'black_dog = white_cat.__class__('黑狗')black_dog.kind = '狗'print(black_dog.kind)black_dog.eat()out:狗
黑狗正在進(jìn)食!

到此,關(guān)于“python的類和實(shí)例的屬性有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI