Python: while循环中定义的函数引用旧变量
Python: function defined in while loop refers to old variable
我有一个在 while 循环中定义的函数,该函数由我无法控制的代码调用。
在下面的示例中,access() 总是 return 的值为 1。为什么?我怎样才能使 access() return 成为最新值?
while True:
g = [1,2,3]
def access():
return g[0]
print(access())
g[0] += 1
lambda 似乎也是如此。我无法使 g 全局化。
因为g
变量总是重新初始化为[1,2,3]
。
只需将其移出 while
循环。
g = [1,2,3]
while True:
.....
我有一个在 while 循环中定义的函数,该函数由我无法控制的代码调用。
在下面的示例中,access() 总是 return 的值为 1。为什么?我怎样才能使 access() return 成为最新值?
while True:
g = [1,2,3]
def access():
return g[0]
print(access())
g[0] += 1
lambda 似乎也是如此。我无法使 g 全局化。
因为g
变量总是重新初始化为[1,2,3]
。
只需将其移出 while
循环。
g = [1,2,3]
while True:
.....