UnboundLocalError: local variable ‘effi‘ referenced before assignment

问题出现场景:

def parse_file(name, tag):
    file_obj = open('/xxx/%s-%s.txt' % (name, tag), 'r')  
    f = file_obj.read()
    for date in f.split('\n'):
        if 'efficiency:' in date:
            effi = (date.split(': ')[1])
        if 'wastedBytes:' in date:
            wasted = (date.split(': ')[1])
        if 'userWastedPercent:' in date:
            WastedPercent = (date.split(': ')[1])
    return effi, wasted, WastedPercent

修改后:

def parse_file(name, tag):
    effi = ''
    wasted = ''
    WastedPercent = ''
    # 
    file_obj = open('/xxx/%s-%s.txt' % (name, tag), 'r')  
    f = file_obj.read()
    for date in f.split('\n'):
        if 'efficiency:' in date:
            effi = (date.split(': ')[1])
        if 'wastedBytes:' in date:
            wasted = (date.split(': ')[1])
        if 'userWastedPercent:' in date:
            WastedPercent = (date.split(': ')[1])
    return effi, wasted, WastedPercent

解释:

1、定义的变量effi, wasted, WastedPercent 在for 循环语句的if判断中,如果进入不了判断,则变量没有定义,没有办法return
2、定义在函数中的全局变量需要设置默认值。

参考文档:

1、https://blog.csdn.net/DansonC/article/details/88860885

2、https://www.cnblogs.com/komean/p/11209780.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值