2012-06-09 133 views
1

我的問題可能很簡單,但我真的無法弄清楚我出錯的地方。 我想將一個變量從一個函數傳遞給另一個函數。因此我使用return,但是我總是收到錯誤消息,我的變量沒有定義。python中的變量範圍

我的代碼是:

url = "http://www.419scam.org/emails/2004-01/30/001378.7.htm" 

def FirstStrike(url): 
    ... 
    return tokens 

def analyze(tokens): 
    ... 

if __name__ == "__main__": 
    FirstStrike(url) 
    analyze(tokens) 

如果我運行此我得到一個錯誤信息:NameError:名字「令牌」是沒有定義。

+1

一個'return'語句返回一個對象,而不是一個名稱或「變量」之前令牌變量。 –

+1

而不是讓人們閱讀你的整個源文件,回溯會使答覆更容易。因此,將代碼最小化到最不經意的方式失敗的最小位。我已經刪除了代碼示例中的所有相關內容,如果您也這樣做了,那麼您的問題可能對您更爲明顯。 – msw

+0

謝謝@msw! – 01000001

回答

9

當您運行的代碼,你有沒有指定的FirstStrike結果給一個變量:

if __name__ == "__main__": 
    tokens = FirstStrike(url) 
    analyze(tokens) 

這是必要的,因爲否則tokens當你調用analyze沒有定義。

+0

完美,非常感謝! – 01000001

4
tokens = FirstStrike(url) 

您必須分配FirstStrike返回值調用分析(標記)