串行数据处理

时间:2018-11-30 20:45:07

标签: python serial-port return-value

我们可以将此函数值传递给变量吗?

import threading
import time

ser = 1#serial.Serial('/dev/ttyUSB0')
var = 0

def handle_data(data):
    print(data)
    var = data
def read_from_port(ser):
        while True:
           print("reading from serial")
           reading = 1#ser.readline().decode()
           handle_data(reading)
           time.sleep(1)


thread = threading.Thread(target=read_from_port, args=(ser,))
thread.start()
input()
print(var)

无法获得var value 1

1 个答案:

答案 0 :(得分:0)

变量var可能采用局部范围。使用python global语句,以便解释器可以确定var的完整范围。

例如:

def handle_data(data):
    global var
    print(data)
    var = data

这里有一个有关python全局变量和变量范围的简单教程:https://www.geeksforgeeks.org/global-local-variables-python/