我正在尝试编写一个每10秒更新一次全局变量的脚本。为简单起见,我们只需在教授时间后增加q
import time, threading
q = 0
def f(q):
# get asset position every 10 seconds:
q += 1
print q
# call f() again in 10 seconds
threading.Timer(10, f).start()
# start calling f now and every 10 sec thereafter
f(q)
而python说:
UnboundLocalError: local variable 'q' referenced before assignment
更改变量q
的正确方法是什么?
此示例使用线程,不更新任何值。 Run certain code every n seconds
答案 0 :(得分:2)
您需要将q明确声明为全局。 q += 1
否则会使解释者感到困惑。
import threading
q = 0
def f():
global q
q += 1
print q
threading.Timer(10, f).start()
f()