This question already has answers here:
Block scope in Python
                                
                                    (5个答案)
                                
                        
                                5年前关闭。
            
                    
在Harmony中,有一个let关键字允许声明范围为最近的块的变量。例如

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


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

我知道我可以使用del来实现相同的目的,但这是手动的,而不是像let关键字那样自动的

最佳答案

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

10-05 19:45