Python的學習(二十一)—-Python的靜態變數

來源:互聯網
上載者:User

一直以來用python做測試,可能沒有很深入的瞭解,前段時間在論壇裡面有人提問說,

class foo():
member1
member2
...
self.member1
foo.member2

其中的兩個成員member1, member2有什麼區別。。。這才知道python中也有自己的全域靜態變數。

其執行個體的屬性是執行個體的,如上class中的member1,對它進行+/-操作時,只會對一個相應對象執行個體產生影響,(其類和該類的其它執行個體的不受影響)。

如果類的屬性是 mutable 對象的話,對此對象*本身*的修改會反映到其他所有執行個體。python 中定義的靜態成員變數,就是類的變數, 只能通過 類.變數名的形式擷取

類變數是該類的所有對象共用的變數成員,

class A:     a1 = 0     def __init__(self, a2):         self.a2 = a2      def setData(self, a3):         self.a3 = a3      def show(self):         print 'A1:%s,a1:%s,a2:%s,a3:%s' %(A.a1, self.a1, self.a2, self.a3)  if __name__ == '__main__':     obj1 = A(1)     obj2 = A(2)     obj3 = A(3)      obj1.setData(1)     obj2.setData(2)     obj3.setData(3)      obj1.a1 = 1     obj2.a1 = 2     obj3.a1 = 3          A.a1 = 1     A.a2 = 2     A.a3 = 3     obj1.show()     obj2.show()     obj3.show()     print 'A1:%s,A2:%s,A3:%s' %(A.a1, A.a2, A.a3)

輸出結果:

A1:1,a1:1,a2:1,a3:1
A1:1,a1:2,a2:2,a3:2
A1:1,a1:3,a2:3,a3:3
A1:1,A2:2,A3:3

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.