我正在使用带有已使用变量的for循环,并且for循环会覆盖先前定义的变量。我知道,简单的方法是使用其他变量名,但是还有另一种方法吗?
x = 999
for x in range(10):
pass
print(x)
9
答案 0 :(得分:3)
否,这是不可能的。该变量将不会被阴影化,而是分配给循环中每次迭代的值。唯一不正确的极端情况是迭代的对象在产生值之前引发异常。
答案 1 :(得分:0)
除非您将循环包含在其他作用域中,否则变量将被覆盖
例如,在一个函数内:
x = 999
def do_stuff():
for x in range(10):
pass
do_stuff()
print(x)
输出:
999
除了将循环包含在其他作用域之外,这是不可能的,您很可能需要重命名变量
答案 2 :(得分:0)
可以,但是只有在将for循环放在较低的作用域(例如函数内部)中时,
x = 999
def func:
for x in range(10): pass
print(x) # 999