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

您所在的位置:网站首页 for循环定义的变量作用域 注意for循环中变量的作用域

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

2024-07-09 10:35| 来源: 网络整理| 查看: 265

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

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

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

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

x = 5 for x in range(10): pass print x将代码保存到test.py文件,运行python -m dis test.py

C:\Users\Patrick\Desktop>python -m dis test.py 1 0 LOAD_CONST 0 (5) 3 STORE_NAME 0 (x) 3 6 SETUP_LOOP 20 (to 29) 9 LOAD_NAME 1 (range) 12 LOAD_CONST 1 (10) 15 CALL_FUNCTION 1 18 GET_ITER >> 19 FOR_ITER 6 (to 28) 22 STORE_NAME 0 (x) 4


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3