Следуя моим предыдущим question. Мне было рекомендовано создать отдельную библиотеку python, а затем импортировать ее.UnboundLocalError: локальная переменная 'W', на которую ссылается перед присвоением
Прочитав немного больше о Stackoverflow
, я понял, что лучший способ - write methods, и я занялся этим путем.
def USB(port):
activateme = serial.Serial(port,115200)
#print "starting to monitor"
for line in activateme:
#print line
return line
def USBprocess(line):
if line.startswith('#d'):
fields = line.split(',')
if len(fields) > 5:
W = fields[1]
V = fields[2]
A = fields[3]
print "monitoring"
return W,V,A
op = USB(port)
w,v,a = USBprocess(op)
и я получаю ошибку:
UnboundLocalError: local variable 'W' referenced before assignment
, что это такое, что я делаю неправильно?
Ошибка будет выбрана, если условие if является ложным, потому что тогда не будет переменной 'W' для возврата –
Очевидно, что линия не strat с' # d'. Как вы думаете, что должно произойти в этом случае? случай? –
Кстати, вы можете делать 'W, V, A = fields [1: 4]' или просто 'возвращать поля [1: 4]' – Elazar