我对Python还比较陌生,但在C++方面有些经验,这就是为什么下面的代码示例让我感到困惑的原因。
def foo():
y = x
print y
x = 5
foo()
运行此代码会打印值为5。如何在foo()函数中知道变量x的值? 如果我们使用C++,上面的代码将无法运行,正确的写法应该是:
#include <iostream>
int x = 5;
void foo()
{
std::cout << "x = " << x << std::endl;
}
int main()
{
foo();
return 0;
}
因为此处的变量 x 是在 foo() 之前在全局作用域中声明(并定义)的。它能够在 Python 中正常工作是因为 x 被添加到了全局符号表中。
谢谢您的帮助!