def new_val(x):
x['a'] = 5
return x
b = {'a': 2}
b = new_val(b) # b re-assigned to ret val
由于字典是可变的,b 是一个指向字典的引用指针,我们将这个指针传递给函数 new_val。
对字典的引用没有改变,但是字典对 2 的引用变成了 5。
原始变量 b 现在应该有 'a' 映射到 5。但是,我想知道对字典的引用(换句话说,变量 b 的指针)是否会改变。
从技术上讲,我们将引用变量 b 重新分配给恰好相同的引用。
在低水平上,会发生什么?这是否像一个无操作,其中一些逻辑识别出引用是相同的,或者引用实际上被取消分配并重新分配?
也许一个更简单的例子是:
b = {}
b = b # At a low level, what does this line do?
largeQ
相关分类