我是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