当前位置:编程学习 > python >>

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.py

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

-------

Python 2.6.5, Mac OSX 10.6

补充:Web开发 , Python ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,