这更多的是一个概念上的问题。我最近看到一段 Python 代码(它在2.7中工作,也可能在2.5中运行) ,其中一个 for
循环对正在迭代的列表和列表中的项目使用相同的名称,这让我觉得既是不好的做法,也是根本不应该工作的。
例如:
x = [1,2,3,4,5]
for x in x:
print x
print x
收益率:
1
2
3
4
5
5
现在,对我来说,最后打印出来的值是循环中赋给 x 的最后一个值,这是有意义的,但是我不明白为什么您能够对 for
循环的两个部分使用相同的变量名,并让它按预期的方式运行。他们在不同的范围内吗?引擎盖下到底发生了什么让这种东西成功运作?