我是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
Run Code Online (Sandbox Code Playgroud)
我也尝试过这个
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"
Run Code Online (Sandbox Code Playgroud)
unu*_*tbu 19
需要声明的是weight是全球性的内部 GetLiveWeight,而不是外面.
weight = 'value'
def GetLiveWeight():
global weight
Run Code Online (Sandbox Code Playgroud)
该global语句告诉Python,在GetLiveWeight函数范围内,weight引用全局变量weight,而不是一些新的局部变量weight.
| 归档时间: |
|
| 查看次数: |
14478 次 |
| 最近记录: |