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