不能 return 函数外的变量
can't return a variable outside the function
我正在尝试 return 函数的输出并尝试在 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
如何使这个程序运行?
您需要使用返回值
for url in pagination_urls:
spider = oss(url)
print spider
这将从 oss
函数获取返回值 data
,并将其分配给您的 spider
变量
您没有将 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
一个函数中的局部变量不会神奇地出现在该函数之外。 return
returns value,不是变量名。相反,显式分配 return 值:
for url in pagination_urls:
spider = oss(url)
print spider
这里 oss()
的 return 值(return
语句在 oss
中生成的任何对象)被分配给 spider
变量。
我正在尝试 return 函数的输出并尝试在 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
如何使这个程序运行?
您需要使用返回值
for url in pagination_urls:
spider = oss(url)
print spider
这将从 oss
函数获取返回值 data
,并将其分配给您的 spider
变量
您没有将 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
一个函数中的局部变量不会神奇地出现在该函数之外。 return
returns value,不是变量名。相反,显式分配 return 值:
for url in pagination_urls:
spider = oss(url)
print spider
这里 oss()
的 return 值(return
语句在 oss
中生成的任何对象)被分配给 spider
变量。