好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

注意for循环中变量的作用域

for e in collections:
    pass 

在for 循环里, 最后一个对象e一直存在在上下文中。就是在循环外面,接下来对e的引用仍然有效。

这里有个问题容易被忽略,如果在循环之前已经有一个同名对象存在,这个对象是被覆盖的。

如果在有代码感知的IDE中, IDE会提示变量是“被重新声明的”, 但运行时却不会出错。

for循环不是闭包,可以使用dis模块分解以下代码可以看到:

x = 5
for x in range(10):
    pass
print x 

{{ page.markdown if page else ''}}

查看更多关于注意for循环中变量的作用域的详细内容...

  阅读:31次