Python實例變量和類變量

Python實例變量和類變量

類變量(類屬性):

類變量屬于類所有,所有實例共享一個變量

實例變量(實例屬性)

實例變量屬于各個實例所有,相互不干擾

1、實例屬性
給實例綁定屬性的方法可以通過self和實例變量

In [23]: class Cat(object):
    ...:     def __init__(self, name):
    ...:         self.name = name
    ...:
In [25]: c = Cat('Fat')
In [26]: c.name
Out[26]: 'Fat'

# 通過實例變量綁定屬性

In [27]: c.age = 2

In [28]: c.age
Out[28]: 2

2、類屬性

類屬性歸類所有,但所有實例都可以訪問它

In [31]: class Cat(object):
    ...:     name = 'Fat' # 類屬性
    ...:

In [32]: c = Cat() # 生成實例

In [33]: c.name # 實例調用類屬性
Out[33]: 'Fat'

In [34]: c
Out[34]: <__main__.Cat at 0x78ba2e8>

In [35]: Cat.name # 類調用類屬性
Out[35]: 'Fat'

In [36]: c.name = 'thin' # 通過實例變量更改屬性“名字為short”

In [37]: c.name # 由于實例屬性優(yōu)先級比類屬性高,會屏蔽類屬性name=thin,所以輸出就是thin
Out[37]: 'thin'

In [38]: Cat.name  # 類調用類屬性依舊是Fat
Out[38]: 'Fat'

In [39]: c.name
Out[39]: 'thin'

In [40]: del c.name # 刪除實例屬性

In [41]: c.name # 再次調用,由于實例屬性被刪除了,就又返回到了類屬性
Out[41]: 'Fat'

歡迎訪問Treehl的博客
Github

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Python 面向對象Python從設計之初就已經是一門面向對象的語言,正因為如此,在Python中創(chuàng)建一個類和對...
    順毛閱讀 4,368評論 4 16
  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學習記錄文檔,今天18年5月份再次想寫文章,發(fā)現簡書還為我保存起的...
    Jenaral閱讀 3,141評論 2 9
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,641評論 1 32
  • Python基礎-類變量和實例變量 寫在前面 如非特別說明,下文均基于Python3 大綱: 1. 類變量和實例變...
    理查德成閱讀 872評論 0 7
  • 一首老狼翻唱的《旅途》,似乎讓大家又開始了追憶青春的道路。。。誰的青春不美好呢?哪怕放縱、哪怕青澀、哪怕帶著倔強的...
    85b4d25f6e04閱讀 583評論 0 0

友情鏈接更多精彩內容