在Python中有类似于Harmony的let关键字的东西吗?

2 投票
1 回答
1015 浏览
提问于 2025-04-18 11:04

在Harmony中,有一个叫做let的关键词,它可以用来声明变量,这些变量的作用范围仅限于最近的代码块。例如:

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

这样写会出错,因为a这个变量只在if代码块里面被定义。

我知道我可以用del来达到类似的效果,但那是手动的,而let关键词是自动处理的。

1 个回答

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

撰写回答