在Python中,globals()
返回全局符号表locals()
的表示,同时返回本地状态的表示.虽然两者都返回字典,但更改将globals()
在全局符号表中生效,而更改locals()
则无效.
为什么会这样?
如果我在元组中有一个列表,然后尝试将该列表与另一个列表连接起来,我会得到一个例外:
>>> a = ([1], [2])
>>> a[1] += [3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)
这是预期的:连接是创建一个新列表,元组是不可变的.但是,尽管有例外,元组已更新:
>>> print(a)
([1], [2, 3])
Run Code Online (Sandbox Code Playgroud)
为什么会这样?