Обработка последовательных данных - PullRequest
0 голосов
/ 30 ноября 2018

Можем ли мы передать значение этой функции в переменную?

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 голосов
/ 04 декабря 2018

Переменная var, вероятно, принимает локальную область видимости.Используйте оператор python global, чтобы интерпретатор мог определить полную область действия var.

, например:

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

. Здесь есть простое руководство по глобальным переменным python и переменной области действия:https://www.geeksforgeeks.org/global-local-variables-python/

...