在 C 中,有一个选项可以决定我们是否要覆盖循环变量。
例如,i 在此代码段中被覆盖:
int i = 3;
for (i = 0;i < 5;i++);
但 i 在此代码段中未被覆盖:
int i = 3;
for (int i = 0;i < 5;i++);
尚未在 Python 中找到类似的选项。
例如,i 在此代码段中被覆盖:
i = 3
for i in range(5):
pass
如何防止 i 在这种情况下被覆盖?
请您参考如下方法:
这与范围有关。在您列出的 C 中的示例中, int i = 0 在 for 循环范围内(特别是 'i' 是该 forloop 的本地成员。并不是说 'i' 没有被覆盖,而是它们'我们位于 2 个不同的地方,因此它们之间完全没有关系(除了从视觉上看之外)。
Python 作用域: Short Description of the Scoping Rules?
