python中yield和return对比

时间:2022-04-07 23:28:56

相同点

功能都是返回程序执行结果

区别

yield返回执行结果并不中断程序执行,return在返回执行结果的同时中断程序执行。

小例子

使用scrapy抓取网页时经常会使用for循环来抓取数据

return 实现

items = []
for ... in...
item['title']=...
items.append(item)

return items

yield实现

for ...in...
item['title']=...
yield item