在python中限制局部变量的范围

时间:2017-06-12 20:51:14

标签: python namespaces

当有一个长函数时,如何仅在函数的一部分内限制变量的范围?我知道用多种语言可以用{}来做到这一点。如何在python中执行此操作?

我知道只有该部分的单独函数会将变量封装到其本地名称空间。但是对于一个长期的线性函数,许多人认为编写只调用一次的许多函数(以及名称)是没有意义的。

1 个答案:

答案 0 :(得分:0)

一般来说,你不能。 Python只为模块(通常是文件),类和函数创建范围;变量只能在少数特殊情况下具有更有限的生命周期,例如Python 3中列表解析中的target_list。在Perl中没有块级范围。

因此,您可能的解决方法是:

  • 创建一次性使用的函数或类。必须调用该函数,而在定义之后永远不必再次命名该类,因为类定义是立即执行的。
  • 完成后,
  • del个变量。

有趣的事实:接受Python的这种限制最终让我们摆脱Hy中的let,因为没有办法让它像预期的那样工作。