yield与return的使用存在什么不同,表现在哪
Admin 2022-06-08 群英技术资讯 766 次浏览
之前小编带领大家认识了return和yield,知道了他们都是定义函数过程中返回值,都用在函数或方法体内,用于返回执行的结果,可是具体有什么区别呢?在什么时候用return,什么时候用yield呢?
yield:
1、是暂停函数
2、返回值后继续执行函数体内代码,
3、返回的是一个迭代器(yield本身是生成器-生成器是用来生成迭代器的);
精髓理解:返回后函数执行暂停
return:
1、是结束函数;
2、返回值后不再执行函数体内代码.
3、返回的是正常可迭代对象(list,set,dict等具有实际内存地址的存储对象)
精髓理解:返回后函数执行结束
具体区别:
return:返回结果后,函数不再继续执行,彻底结束;只执行一次,函数结束
调用方式:函数() 直接执行函数
def func(): start_time = time.time() list = [] for i in range(1, 100000000): list.append(i) end_time = time.time() cost_time = end_time - start_time print(cost_time) return list # 相同的代码 func() # 函数报错,meryerror 内存错误。
yield:返回结果后,函数不结束,yield返回值后暂停,再次调用时,在暂停的地方继续执行;可执行多次,直到函数结束
def func(): start_time = time.time() list = [] for i in range(1, 100000000): list.append(i) end_time = time.time() cost_time = end_time - start_time print(cost_time) yield list func() # 随用随取,节省内存空间。 next(func())
比较节约内存空间。保存的是生成数据的方式。可以达到随用随取的效果。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家介绍了python区块链地址的简版实现,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
python中的schedule模块可以使我们方便简单的使用定时任务,即在特定的时间自动的执行一些任务的功能,本文将用这一模块实现邮件自动发送,需要的可以参考一下
这篇文章主要介绍了通过几个机器学习中最常用的概率分布为例,来看看如何从一个概率分布中采样,文章中的代码对我们的工作或学习具有一定价值,感兴趣的朋友可以了解一下
Python内置函数-reversed函数。reversed 函数返回一个反转的迭代器。
Python内置函数-getattr() 函数。getattr() 函数用于返回一个对象属性值。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008