Python Global Variable not updating
global-variables, python
Solution
You need to declare that `weight` is global inside `GetLiveWeight`, not outside it.
weight = 'value'
def GetLiveWeight():
global weight
The `global` statement tells Python that within the scope of the `GetLiveWeight` function, `weight` refers to the global variable `weight`, not some new local variable `weight`.
Problem
I'm new with Python and programming but I can't seem to understand why this function does not update the global variable ``` 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 ``` I also tried this: ``` 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" ```