2012-06-09 102 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返回值调用分析(标记)