Python全局变量未更新



我是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"

您需要声明weightGetLiveWeight内部而不是外部是全局的。

weight = 'value'
def GetLiveWeight():
    global weight

global语句告诉Python,在GetLiveWeight函数的范围内,weight指的是全局变量weight,而不是一些新的局部变量weight

相关内容

  • 没有找到相关文章

最新更新