【发布时间】:2015-07-09 05:43:48
【问题描述】:
我发现了一些让我困惑的 Python 行为。
>>> A = {1:1}
>>> B = A
>>> A[2] = 2
>>> A
{1: 1, 2: 2}
>>> B
{1: 1, 2: 2}
到目前为止,一切都按预期运行。 A 和 B 都引用相同的、可变的字典,并且更改一个会更改另一个。
>>> A = {}
>>> A
{} # As expected
>>> B
{1: 1, 2: 2} # Why is this not an empty dict?
为什么A 和B 不再引用同一个对象?
我看到了这个问题:Python empty dict not being passed by reference?,它验证了这种行为,但答案解释了如何修复提供的脚本而不是为什么会发生这种行为。
【问题讨论】:
-
Assignment 将名称绑定到对象。它不会改变对象。
标签: python dictionary pass-by-reference