在许多语言(和地区)有通过创建类似于块创建本地范围的一个很好的练习本.
void foo() { ... Do some stuff ... if(TRUE) { char a; int b; ... Do some more stuff ... } ... Do even more stuff ... }
如何在python中实现这一点而不会出现意外的缩进错误,并且不使用某种if True: 技巧
你为什么要在python中创建新的作用域呢?
在其他语言中执行此操作的正常原因是变量作用域,但在python中不会发生这种情况.
if True: a = 10 print a
在Python中,范围界定有三种类型:全局,本地和类.您可以创建专门的"范围"词典以传递给exec/eval().此外,您可以使用嵌套范围(在另一个范围内定义函数).我发现这些在我的所有代码中都足够了.
正如道格拉斯·莱德已经说过的那样,在其他语言中使用它的主要原因是变量范围,而这在Python中并不存在.另外,Python是我用过的最易读的语言.它会违背可读性,做一些像if-true技巧(你说你想避免的).在这种情况下,我认为最好的办法是将代码重构为多个函数,或者使用单个作用域.我认为Python中的可用范围足以涵盖每个可能的事件,因此本地范围不一定是必要的.
我希望这有帮助.