您好,登錄后才能下訂單哦!
這篇文章主要介紹“python的類和實例的屬性有哪些”,在日常操作中,相信很多人在python的類和實例的屬性有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”python的類和實例的屬性有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
創建類時會創建它的命名空間,用來存儲類中定義的所有名字,這些名字稱為屬性。屬性有兩種:一是數據,二是代碼塊(又稱函數或方法)。
創建實例時會創建它的命名空間,用來存放單向類指針和實例的屬性。實例可通過類指針訪問類的屬性,而類不能訪問實例的屬性。另外python支持多繼承,即類指針可以有多個。
訪問實例.屬性時,若在它的命名空間找不到,解釋器會通過類指針去類(父類、祖父類等)的命名空間里查找,若都沒有找到則報錯。
修改實例的屬性時,若在它的命名空間中有此屬性,則修改之。若實例無此屬性而類(父類、祖父類等)中有,則會在實例的命名空間中創建該屬性,并不會修改類(父類、祖父類)的屬性。
class Animal:kind = '動物'def __init__(self, name):self.name = namedef eat(self):print(f'{self.name}正在進食!')white_cat = Animal('白貓')white_cat.kind = '貓'print(white_cat.kind)print(Animal.kind)out:貓 動物
從上述案例中可以看到,修改實例white_cat的kind屬性,Animal的kind屬性不會變化。
self實質是實例在內存中的地址,在創建實例時會自動將它作為第一參數傳給類的__init__函數。
當然你也可以給它取別的名字,但改名會造成他人閱讀代碼很困惑,所以不建議改名!
查看類和實例的屬性有兩種方法:
dir(類名):列出屬性名列表。注意其中有很多是object類中定義的屬性。
類名.__dict__:列出屬性字典,key為屬性名,value為屬性值。
類和實例常用的特殊屬性
類名.__name__ 類的名字
類名.__doc__ 類的說明文檔
類名.__base__ 類的第一父類
類名.__bases__ 類所有父類構成的元組
類名.__dict__ 類的屬性字典
類名.__module__ 類定義所在的模塊
實例.__class__ 實例對應的類
這里舉一個特殊例子,通過實例的特殊屬性__class__來實例化另外一個實例:
class Animal:'''動物類'''kind = '動物'def __init__(self, name):self.name = namedef eat(self):print(f'{self.name}正在進食!')white_cat = Animal('白貓')white_cat.kind = '貓'black_dog = white_cat.__class__('黑狗')black_dog.kind = '狗'print(black_dog.kind)black_dog.eat()out:狗 黑狗正在進食!
到此,關于“python的類和實例的屬性有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。