我是python新手,並且類的成員變量在我的python代碼中工作怪異。有些作品像普通變量一樣,但有些作品像靜態變量!python成員變量的實例像成員變量一樣工作,有些工程像靜態變量
class Chaos:
list_value = []
value = "default"
def set_value(self, word):
self.list_value.append(word)
self.value = word
def show(self, num):
print(str(num) + "====")
print("value : " + self.value)
for st in self.list_value:
sys.stdout.write(st)
print("\n=====\n")
a = Chaos()
a.show(0)
a.set_value("A")
a.show(1)
b = Chaos()
a.show(2)
b.show(3)
結果
0====
value : default
=====
1====
value : A
A
=====
2====
value : A
A
=====
3====
value : default
A
=====
,但測試的最終結果跟我想象中的最後一次測試不同。 'b'實例的'list_value'中不應該有「A」。 它剛剛創建,從未添加過'A'。 我向'a'的實例添加'A',而不是'b'。 但是結果表明,'b'中也有'A' 此外,類中的'list_value'和'value'的工作方式不同。 它看起來像兩個具有相同的語法。他們爲什麼工作不同?
[爲什麼要記住類屬性?](http://stackoverflow.com/questions/9713259/why-class-attribute-is-remembered) – 2012-03-20 04:30:33