コードは次のとおりです。
>>> class A(object):
... value = []
... def method(self, new_value):
... self.value.append(new_value)
...
>>> a = A()
>>> a.value
[]
>>> a.method(1)
>>> b = A()
>>> b.value
[1]
>>> b.method(2)
>>> b.value
[1, 2]
>>> a.value
[1, 2]
これはリストでのみ発生します。__init__で値を定義する唯一の方法はありますか?
Pythonでデフォルトのクラス値を通常定義する方法は?
UPD
ご回答ありがとうございます
>>> class B(object):
... value = "str"
... def method(self):
... self.value += "1"
...
>>> a = B()
>>> a.value
'str'
>>> a.method()
>>> a.value
'str1'
>>> b = B()
>>> b.value
'str'
わからない、なぜリストは共有されているのにstrは共有されていないのですか?