2013-11-25 192 views
0

我收到一個錯誤消息: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語句中的單詞時,出現錯誤,我不確定原因。任何幫助?謝謝!

+0

在情況下,如果再發生異常'words'不會被定義,你會在這條線',而'中字出現錯誤:' –

回答

0

您需要定義一個默認值,

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