在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",或者这种有块的愿望可能会建议重构成一个单独的函数.但是我想强调这只是为了简短的片段,你想强调这里的变量小块不得在别处使用.)
在C编程语言中,我的理解是变量只能在代码块的开头定义,而变量将具有声明它的块的范围.考虑到这一点,我想知道它是否是被认为是人为地创建新范围的不良做法,如下例所示:
void foo()
{
... Do some stuff ...
if(TRUE)
{
char a;
int b;
... Do some more stuff ...
}
... Do even more stuff ...
}
Run Code Online (Sandbox Code Playgroud)
假设在宏定义中将TRUE设置为1,这段代码是否会被认为是"好代码",或者是否会使经验丰富的程序员在想到它时感到畏缩?
感谢您的输入!
编辑:为了回应一些答案,我正在使用的代码需要与一些非常古老的遗留系统一起工作.虽然按照C99的假设进行操作会很好,但我们真的无法保证他们会拥有它.