我试图从函数返回输出并尝试在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
如何使这个程序工作?
答案 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()
的返回值(return
中oss
生成的spider
语句)的任何对象都被分配给{{1}}变量。