我是 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'的工作方式不同。
它们看起来具有相同的语法,为什么它们的工作方式不同呢?