首页 > 程序开发 > Web开发 > Python >

Python: 局部变量的作用域

2011-04-28

我们知道下面这段 C 代码肯定是行不通的。 void test(bool x){    if (x)    {        int a = 1234;    }     printf("%d ", a);}

我们知道下面这段 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.py

0x100253268 {a: 1234, x: True}
0x100253268 {a: 1234, x: True} 1234
也就是说整个函数内部都是通过一个字典(locals)来维持环境的。

-------

Python 2.6.5, Mac OSX 10.6

相关文章
最新文章
热点推荐