如何在Python中强制本地范围?

dmo*_*oly 20 python scope

在C++中,您可以这样做以强制本地范围:

{
    int i = 1;
    // Do stuff
}
// local variable i is destroyed
{
    int i = 7;
    // Do more stuff
}
Run Code Online (Sandbox Code Playgroud)

这样做的好处是,在强制本地范围结束时,括号中声明的任何变量都将消失.这有助于防止在以后您不打算使用x的位置使用先前定义的变量x.

你能用Python做到这一点吗?如果是这样,怎么样?

== ==更新

我知道功能 - 这是显而易见的事情.我想知道当代码很简单并且不值得创建单独的函数时,是否有一种快速的方法来执行上述操作 - 只是一些快速表示法强调该块中的变量不会在函数中的任何其他位置使用.

从人们到目前为止所说的简短回答是否定的.

(我知道有一些聪明的方法,比如"del",或者这种有块的愿望可能会建议重构成一个单独的函数.但是我想强调这只是为了简短的片段,你想强调这里的变量小块不得在别处使用.)

ice*_*ees 7

在Python中,如果在函数内部声明变量,则它是本地的,不能在函数外部访问

>>> def x():
    i = 5


>>> x()
>>> i

Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    i
NameError: name 'i' is not defined
>>> 
Run Code Online (Sandbox Code Playgroud)

或者,您可以从末尾的命名空间中删除该变量,以便您不能重复使用它.

>>> i = 5
>>> del i
>>> i

Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    i
NameError: name 'i' is not defined
>>> 
Run Code Online (Sandbox Code Playgroud)