我有以下Python代碼:爲什麼對象中的字典與其他字典沒有區別?
#!/usr/bin/env python2.6
class container(object):
name = 'container'
configuration = {'var1': 'var1',
'var2': 'var2'}
if __name__ == "__main__":
container1 = container()
container2 = container()
container2.name = 'container2'
container2.configuration['var2'] = 'newvar2'
print container1.name
print container1.configuration['var2']
我預計這將打印「容器」和「VAR2」,但是對於後者它打印「newvar2」,而不是
爲什麼配置變量點兩個對象都使用同一個字典嗎?我怎樣才能解決這個問題?
大多數答案已經解釋說名稱和配置是類變量。爲什麼container2.name的更改不會影響container1.name?
爲什麼'name'不是一個類變量呢?我不希望那個人也改變嗎? – 2010-11-11 07:39:05
@Peter Smit查看我的更新。 – aaronasterling 2010-11-11 07:43:20