与其他语言(如c)不同,c++将变量的作用域保留在循环中。例如
for(int i=0; i<5; i++)
{
do stuff;
}
i+=1 // raises error as i is not initialised.
在python中使用相同的代码
for i in range(5)
do stuff
i+=1 # doesn't raise error as i is initialised.
尽管这有时会很有帮助,但有时会很痛苦,因为我很少在循环后的代码中再次使用变量名,比如i, key, value
,而不会遇到任何显式错误。你知道吗
有没有比在循环之后使用del i
更具python风格的方法来避免上述问题?你知道吗
编辑:这个问题已被标记为重复的Short description of the scoping rules?我看到了很多年前。这个线程描述了python中的作用域是如何工作的,而我的问题则完全不同。请将此取消标记为副本。你知道吗
在Python3中,列表理解可能是一个答案。。。?你知道吗
相关问题 更多 >
编程相关推荐