python 模拟块级作用域

#coding=utf8

def func1(count):
    for i in range(count):
        print i

    print i #4

func1(5)


def func2(count):
    def f():
        for i in range(count):
            print i
    f()
    print i #抛错

func2(5)

python和js一样,应该是没有块级作用域的,可以用函数的函数来模拟块级作用域,以免变量过多造成数据污染。

而js模拟块级作用域的方法是用函数表达式+括号:

function outputFunc(count){
    (function(){
        //块级作用域
        for (var i=0; i<count; i++);
    })();
    alert(i);//抛错
}

  

posted @ 2013-03-23 00:02  践道者  阅读(776)  评论(0编辑  收藏  举报