6
Im mới với Python và lập trình nhưng không thể dường như để hiểu tại sao chức năng này không cập nhật các biến toàn cầuBiến Python toàn cầu không cập nhật
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
Tôi cũng đã cố gắng này
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"
Cảm ơn tôi đã thử điều đó, nhưng tôi vẫn không thể có được chức năng để thay đổi biến trọng lượng, nó luôn luôn có vẻ ở lại thiết lập giá trị? – Rhys
Bạn có chắc chắn điều kiện 'interupt == False' (thường được viết là' không interupt') là True? Nói cách khác, bạn có chắc là mã bên trong 'while-loop' đang được thực thi không? – unutbu
có, tôi đã thêm một bản in vào vòng lặp while để xuất ra trọng số biến và nó hoạt động tốt. Nó có thể có một cái gì đó để làm với cách mà tôi gọi nó là 'thử: luồng.Thread (target = GetLiveWeight) .start() in liveWeight trừ: in "Lỗi: không thể bắt đầu chủ đề"' – Rhys