Wednesday, February 16, 2005

Python:Variables in Class

Python可以動態的增減一個class的attribute,這點跟他語言的特性有關係。對於Python,在class裡宣告一個變數,即便是告訴 使用者,這個變數已經存在(instance產生),利用這個class產生的instance,在更改class宣告的變數值之前,所有的 instance都共同擁有同一份變數(all instance share one copy)。
-------------file name:att1.py-------------

class OneAttribute:
iA=1

--------------end file------------------------
在互動式環境下:

>>>from att1 import *
>>>OneAttribute.iA
1
>>> id(OneAttribute.iA)
7951280
>>>oaInstance1=OneAttribute()
>>>oaInstance2=OneAttribute()
>>> oaInstance1.iA, oaInstance2.iA
(1,1)
>>> id(oaInstance1.iA),id(oaInstance2.iA)
(7951280, 7951280)
>>> oaInstance1.iA=2
>>> oaInstance1.iA, oaInstance2.iA
(2,1)
>>>OneAttribute.iA=3
>>> oaInstance1.iA, oaInstance2.iA
(2,3)
>>> id(oaInstance1.iA),id(oaInstance2.iA)
(7951268, 7951280)

No comments: