在许多语言(和地方)中,通过创建像这这样的块来创建本地作用域是一种很好的实践。
void foo()
{
... Do some stuff ...
if(TRUE)
{
char a;
int b;
... Do some more stuff ...
}
... Do even more stuff ...
}我如何在python中实现这一点,而不需要意外的缩进错误,也不需要使用某种https://stackoverflow.com/questions/541705/is-iftrue-a-good-idea-in-c技巧。
发布于 2009-02-12 16:10:01
在Python中,范围划分分为三种类型:全局、本地和类。您可以创建专门的“作用域”字典,以传递给exec / eval()。此外,还可以使用嵌套作用域(在另一个作用域中定义函数)。我发现这些在我所有的代码中都足够了。
正如Douglas已经说过的,在其他语言中使用它的主要原因是变量作用域,而这在Python中并不真正发生。此外,Python是我使用过的最易读的语言。这样做会有悖于可读性,比如“如果是真的”(你说你想要避免的)。在这种情况下,我认为最好的选择是将代码重构为多个函数,或者使用单个作用域。我认为Python中的可用作用域足以涵盖所有可能发生的情况,因此不应该真的需要本地范围。
发布于 2009-02-12 15:57:19
为什么要在python中创建新的作用域呢?
在其他语言中这样做的正常原因是变量作用域,但在python中不发生这种情况。
if True:
a = 10
print a发布于 2009-02-12 16:11:08
如果您只想创建临时变量并让它们在使用后立即被垃圾收集,则可以使用
del varname当你不再想要他们的时候。
如果只是为了美观,您可以使用注释或额外的换行符,但不需要额外的缩进。
https://stackoverflow.com/questions/541926
复制相似问题