为了账号安全,请及时绑定邮箱和手机立即绑定

UnboundLocalError:分配前已引用局部变量“ W”

UnboundLocalError:分配前已引用局部变量“ W”

慕的地10843 2021-03-17 18:15:47
继我之前的问题。建议我制作一个单独的python库,然后将其导入。在阅读了更多的内容之后Stackoverflow,我意识到最好的方法是编写方法,并且我已经走了这条路。def USB(port):        activateme = serial.Serial(port,115200)        #print "starting to monitor"        for line in activateme:                #print line                return linedef 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,Aop = USB(port)w,v,a = USBprocess(op)我得到错误:UnboundLocalError: local variable 'W' referenced before assignment我做错了什么?
查看完整描述

2 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

W, V, A如果第一个if条件不是,则应在函数开始时提供的值True。可能是这样的(更改适合您问题的默认值):


def USBprocess(line):

    W, V, A = '0', '0', '0'

    if line.startswith('#d'):

        # etc.


查看完整回答
反对 回复 2021-04-01
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

如果此表达式不正确:

 line.startswith( '#d')

变量WV并且A不会在您的USBprocess函数中初始化,因此return将失败。

通过在if语句之前初始化所有局部变量来修复它。


查看完整回答
反对 回复 2021-04-01
  • 2 回答
  • 0 关注
  • 222 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号