我是Python的新手,拥有更多的Java背景。我理解Python中的静态类变量的概念,但是我注意到列表和对象不像字符串那样工作,例如 - 它们在类的实例之间共享。Python中的静态类变量 - 列表和对象
换句话说:
class box():
name = ''
contents = []
def __init__ (self, name):
self.name = name
def store (self, junk):
self.contents.append(junk)
def open (self):
return self.contents
现在,如果我创建两个实例,并尝试添加东西对他们说:
a = box('Box A')
b = box('Box B')
a.store('apple')
b.store('berry')
print a.open()
print b.open()
输出:
['apple','berry']
['apple','berry']
这是非常清楚的,他们”在框的两个实例之间重新共享。
def store (self, junk):
temp = self.contents
temp.append(junk)
self.contents = temp
但有一个更清洁/更传统的方式:
现在我可以通过以下操作得到解决呢?有人能解释为什么发生这种情况吗
你可能会发现[实例变量vs类变量](http://stackoverflow.com/questions/2714573/instance-variables-vs-class-variables-in-python)有用。 – kalhartt