Python中是否有类似Harmony的关键字?

时间:2014-06-25 17:27:20

标签: javascript python

在Harmony中,有一个let关键字,允许声明范围限定为最近块的变量。例如

function foo() {
    if (true){
        let a = 100;
    }
    return a
}

将导致错误,因为a仅在if块内定义。

我知道我可以使用del来实现相同的目标,但这是手动而非自动,如let关键字

1 个答案:

答案 0 :(得分:2)

Python为每个类,模块,函数或生成器表达式创建范围。代码块中没有范围。您可以使用嵌套函数实现预期目标,例如:

def outside():
    def inside():
        var=5
    print var

在外面打电话会导致:

outside()
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "<input>", line 5, in outside
NameError: global name 'var' is not defined