UnboundLocalError:赋值前引用的局部变量'W'

pis*_*tal 1 python linux

按照我之前的问题.我被建议创建一个单独的python库然后导入它.

在阅读了更多内容之后Stackoverflow,我意识到最好的方法是编写方法,然后我就走上了这条道路.

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)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

UnboundLocalError: local variable 'W' referenced before assignment
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

Ósc*_*pez 6

W, V, A如果第一个if条件不是,您应该在函数的开头提供值True.也许这样的事情(改变适合你的问题的默认值):

def USBprocess(line):
    W, V, A = '0', '0', '0'
    if line.startswith('#d'):
        # etc.
Run Code Online (Sandbox Code Playgroud)

  • 例如,"W = A = V =无" (3认同)