问题出现场景:
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