由于某种原因,我的计数器不更新,即使我在while循环中添加一个?
代码:
counter = 1
def loo(counter):
counter+=1
return counter
while 1:
print(loo(counter))
这是因为函数中的计数器变量是局部的,而不是全局的。因此,它只会在函数内部更新。然而,如果你将函数的值赋给全局计数器,你将实现你想要的。
glob_counter = 1
def loo(local_counter):
local_counter += 1
return local_counter
while 1:
glob_counter = loo(glob_counter)
print(glob_counter)
当你将计数器作为函数的参数传递时,你创建了一个新的实例,因此原始变量计数器将不会更新,其值保持为1。
这样做:
counter = 1
def loo(counter):
counter+=1
return counter
while 1:
counter = loo(counter)
print(counter)