考虑以下:
>>> a = {}
>>> b = {}
>>> c = {}
>>> c['a'] = 'b'
>>> a
{}
>>> b
{}
>>> c
{'a': 'b'}
好的,这一切都很好。正是我所期望的。所以我把它缩短了。
>>> a = b = c = {}
>>> c['a'] = 'b'
>>> a
{'a': 'b'}
>>> b
{'a': 'b'}
>>> c
{'a': 'b'}
这是怎么回事?其他不可变数据类型(如整数)不会发生这种情况。
>>> a = b = c = 0
>>> a += 1
>>> a
1
>>> b
0
>>> c
0
我认为这可能与不变性有关,但这种行为对我来说很奇怪。任何人都可以解释为什么会这样吗?