当有一个很长的函数时,如何将变量的范围限制在函数的一段内?我知道在很多语言中都可以使用 {} 来做到这一点。如何在python中做到这一点?
我知道仅该部分的单独函数会将变量封装到其本地命名空间。但是对于一个很长的线性函数,许多人认为编写许多只被调用一次的函数(以及名称)是没有意义的。
一般来说,你不能。Python 只为模块(通常是文件)、类和函数创建作用域;仅在少数特殊情况下,变量的生存期才更有限,例如target_listPython 3 中的列表理解。没有像 Perl 中那样的块级作用域。
因此,您可能的解决方法是:
del当你使用完变量后。let有趣的事实:接受 Python 的这一限制是我们最终在Hy中摆脱的原因,因为没有办法让它像人们期望的那样工作。5年后更新:又实现了另一个版本let,它的工作方式是实现我们自己的整个系统来跟踪变量的范围,并通过发出编译时错误并在需要时添加nonlocaland来强制执行global。我想这里没有捷径。
| 归档时间: |
|
| 查看次数: |
2153 次 |
| 最近记录: |