Python: 局部变量的作用域
我们知道下面这段 C 代码肯定是行不通的。
void test(bool x)
{
if (x)
{
int a = 1234;
}printf("%d ", a);
}
编译会出现 "error: ‘a’ undeclared (first use in this function)" 错误。但在 Python 中是可行的。
#!/usr/bin/env python
# -*- coding:utf-8 -*-def test(x):
if x:
a = 1234
print hex(id(a)), locals()print hex(id(a)), locals(), a
test(True)
执行:
$ ./main.py0x100253268 {a: 1234, x: True}
0x100253268 {a: 1234, x: True} 1234
也就是说整个函数内部都是通过一个字典(locals)来维持环境的。-------
Python 2.6.5, Mac OSX 10.6
补充:Web开发 , Python ,