Python class屬性

class的屬性分兩種:類屬性和實例屬性

>>> class AA(object):
...     x = 1
... 
>>> AA.x             #類屬性
1
>>> aa = AA()
>>> aa.x             #實例屬性
1

屬性為不可變對象

實例屬性不影響類屬性:

>>> aa.x += 1
>>> aa.x
2
>>> AA.x
1

類屬性影響實例屬性:

>>> AA.x += 1
>>> AA.x
2
>>> aa.x
2

屬性為可變對象

>>> class BB(object):
...     y = [1,2,3]

類屬性和實例屬性相互影響:

>>> bb = BB()
>>> BB.y.append(4)
>>> BB.y
[1, 2, 3, 4]
>>> bb.y
[1, 2, 3, 4]
>>> bb.y.append('aa')
>>> bb.y
[1, 2, 3, 4, 'aa']
>>> BB.y
[1, 2, 3, 4, 'aa']

添加屬性

添加類屬性,會影響到實例屬性:

>>> class CC(object):
...     g = 3
... 
>>> cc = CC()
>>> CC.h = 4
>>> cc.h
4

添加實例屬性,不會影響到類屬性:

>>> cc.i = 5
>>> CC.i
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: type object 'CC' has no attribute 'i'
>>> 

可以看出類沒有收納 i 這個屬性。進一步說明類屬性不受實例屬性左右。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標準(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,186評論 6 13
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,993評論 19 139
  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 1,789評論 0 9
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 3,896評論 1 10
  • 閑扯:畢業(yè)三年從事通信方面工作,由于巧合認識了一位從事證券的大叔,談吐穩(wěn)重,頗有眼見。推薦《證券分析》(格雷厄姆)...
    模糊的正確閱讀 492評論 0 1