gpt4 book ai didi

python - 无法理解将结果传递给另一个函数和将结果重新调整给另一个函数之间的区别

转载 作者:太空宇宙 更新时间:2023-11-04 02:12:25 26 4
gpt4 key购买 nike

我在 python 中使用其中的两个函数编写了一个脚本。第一个函数应该从网页获取一些链接,另一个应该在控制台中打印它。

我的问题是,当我使用 return 关键字(如 return get_info(elem))将结果从一个函数传递到另一个函数时,它有什么不同?通常只执行此 get_info(elem),我可以将内容从一个函数传递到另一个函数,然后何时选择此 return get_info(elem),为什么?

一个例子可能是:

import requests
from bs4 import BeautifulSoup

def get_links(url):
response = requests.get(url)
soup = BeautifulSoup(response.text,"lxml")
elem = soup.select_one(".info h2 a[data-analytics]").get("href")
get_info(elem) #why this one
return get_info(elem) #or why this

def get_info(link):
print(link)

最佳答案

让我们首先简化您的函数,以便您可以运行它并比较结果:

def get_links(url):
url = "this returns link: {}".format(url)
get_info(url) #why this one
return get_info(url) #or why this

def get_info(link):
print(link)

get_links('google.com')
>>this returns link: google.com
>>this returns link: google.com

您的函数现在返回 print 两次。首先是调用函数时,其次是返回函数时,在本例中实际上返回了 None,因为 get_info 不返回任何内容。

这里很明显:

url = get_links('google.com')
>>this returns link: google.com
>>this returns link: google.com

url
>> *nothing happens*

如果 return 确实做了一些事情,它的结果会更明显,例如:

def get_links(url):
url = "this returns link: {}".format(url)
return get_info(url)

def get_info(link):
return "get_info does something, {}".format(link)

url = get_links('google.com')
url

>>'get_info does something, this returns link: google.com'

如果您不使用 return,这仅意味着该函数不会返回任何内容,例如,如果您只想像您那样打印结果,就会发生这种情况。您可以像我上面那样为一个没有返回值的函数指定一个名称来进一步尝试,结果基本上是 None

关于python - 无法理解将结果传递给另一个函数和将结果重新调整给另一个函数之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53424187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com