UnboundLocalError变量未被识别
问题描述:
我收到一个错误消息:UnboundLocalError: local variable 'words' referenced before assignment
但我不确定原因。以下是我的代码:UnboundLocalError变量未被识别
def hasher(fname):
try:
with open(fname, 'r') as f:
words = re.split('(["\'@&,;:\(\)\s+\*\?\.]|\w+)', f.read().lower())
except:
print 'Out'
while '' in words:
words.remove('')
但是,当我尝试引用while语句中的单词时,出现错误,我不确定原因。任何帮助?谢谢!
答
您需要定义一个默认值,
def hasher(fname):
words = []
try:
with open(fname, 'r') as f:
words = re.split('(["\'@&,;:\(\)\s+\*\?\.]|\w+)', f.read().lower())
except:
print 'Out'
while '' in words:
words.remove('')
return words
在情况下,如果再发生异常'words'不会被定义,你会在这条线',而'中字出现错误:' –