小编Gus*_*tav的帖子

为什么我可以在Python for循环中为迭代器和序列使用相同的名称?

这更像是一个概念性问题.我最近在Python中看到了一段代码(它在2.7中工作,也可能在2.5中运行),其中一个for循环对迭代的列表和列表中的项使用相同的名称,这既是一种糟糕的做法,也是一种根本不起作用的东西.

例如:

x = [1,2,3,4,5]
for x in x:
    print x
print x
Run Code Online (Sandbox Code Playgroud)

产量:

1
2
3
4
5
5
Run Code Online (Sandbox Code Playgroud)

现在,我觉得打印的最后一个值是从循环中分配给x的最后一个值,但是我不明白为什么你能够为for循环的两个部分使用相同的变量名并且它按预期运作.它们在不同的范围内吗?引擎盖下发生了什么让这样的事情发挥作用?

python for-loop variable-assignment python-internals

78
推荐指数
3
解决办法
4618
查看次数