我是Python和编程的新手,但我似乎不明白为什么这个函数不更新全局变量
global weight
weight = 'value'
def GetLiveWeight():
SetPort()
while interupt == False:
port.write(requestChar2)
liveRaw = port.read(9)
liveRaw += port.read(port.inWaiting())
time.sleep(0.2)
weight = liveRaw.translate(None, string.letters)
return weight
我也试过这个:
weight = 'value'
def GetLiveWeight():
global weight
SetPort()
while interupt == False:
port.write(requestChar2)
liveRaw = port.read(9)
liveRaw += port.read(port.inWaiting())
time.sleep(0.2)
weight = liveRaw.translate(None, string.letters)
return weight
try:
threading.Thread(target = GetLiveWeight).start()
print liveWeight
except:
print "Error: unable to start thread"
您需要声明weight
在GetLiveWeight
内部而不是外部是全局的。
weight = 'value'
def GetLiveWeight():
global weight
global
语句告诉Python,在GetLiveWeight
函数的范围内,weight
指的是全局变量weight
,而不是一些新的局部变量weight
。