中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

python的類和實例的屬性有哪些

發布時間:2021-11-25 09:53:18 來源:億速云 閱讀:180 作者:iii 欄目:互聯網科技

這篇文章主要介紹“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

self實質是實例在內存中的地址,在創建實例時會自動將它作為第一參數傳給類的__init__函數。

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

類和實例的屬性

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

  2. 類和實例常用的特殊屬性
    類名.__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的類和實例的屬性有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

隆昌县| 正安县| 玉屏| 和林格尔县| 阳谷县| 垦利县| 敖汉旗| 会宁县| 富蕴县| 兴山县| 筠连县| 南宫市| 广饶县| 安西县| 朔州市| 新乡县| 增城市| 永平县| 台中县| 潞城市| 永嘉县| 菏泽市| 芜湖市| 尉氏县| 宝应县| 霸州市| 广平县| 宣威市| 浠水县| 衡水市| 重庆市| 山东省| 大洼县| 洛隆县| 滁州市| 墨脱县| 栖霞市| 班玛县| 普陀区| 尼木县| 赤城县|