无法在函数外返回变量

时间:2015-04-21 11:30:25

标签: python arguments

我试图从函数返回输出并尝试在for循环中执行函数调用并在同一循环中打印输出。但它不起作用:

pagination_urls = ["http://google.com"]

def oss(url):
    data = url
    return data


for url in pagination_urls:
    oss(url)
    spider = data
    print spider

输出:

Traceback (most recent call last):
  File "mongo.py", line 10, in <module>
    spider = data
NameError: name 'data' is not defined

如何使这个程序工作?

3 个答案:

答案 0 :(得分:1)

您需要使用返回的值

for url in pagination_urls:
    spider = oss(url)
    print spider

这将从data函数中获取返回值oss,并将其分配给您的spider变量

答案 1 :(得分:0)

您没有将oss()的输出分配给任何变量。试试这个:

pagination_urls = ["http://google.com"]

def oss(url):
    data = url
    return data


for url in pagination_urls:
    data = oss(url)
    spider = data
    print spider

答案 2 :(得分:0)

一个函数中的局部变量不会神奇地出现在该函数之外。 return返回,而不是变量的名称。相反,明确指定返回值:

for url in pagination_urls:
    spider = oss(url)
    print spider

此处oss()的返回值(returnoss生成的spider语句)的任何对象都被分配给{{1}}变量。