我试图了解 Python 名称绑定到底是什么,以及何时解释此绑定。
在 c 中,
include <stdio.h>
int main()
{
int X = 42;
int* Y[1];
Y[0] = &X;
X = 666;
printf("%d", *Y[0]);
return 0;
}
打印 666。我期待 Python 代码块:
X = 42
L = []
L.append(X) #3
X = 666
print(L) #5
做同样的事情,但事实并非如此。标记为 3 和 5 的行之间究竟发生了什么?#3 是否再次引用称为“42”的对象,例如 X,我们将其称为 X',并将 X' 存储在 L 指向的对象中,即 []?