yield与return的使用存在什么不同,表现在哪
Admin 2022-06-08 群英技术资讯 405 次浏览
之前小编带领大家认识了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内存分配机制是很有必要的。本文就给大家分享一下实例帮助大家更好的理解python内存分配机制,下面就跟随小编一起来看看吧。
内容介绍1中国结的组成部分2设计中国结对象3绘制结体4绘制耳翼5绘制挂耳和流苏6完整代码,一键运行1中国结的组成部分中国结是一种手工编织工艺品,它身上所显示的情致与智慧正是汉族古老文明中
Python单继承是很学习Python很重要的知识,因此这篇文章主要给大家分享Python单继承的内容,对新手学习Python有一定的借鉴价值,感兴趣的朋友可以参考一下,下面我们一起来学习一下吧。
这篇文章主要为大家介绍了Python数据分析之文件的读取,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
这篇文章主要为大家介绍了Python测试框架pytest高阶用法全面详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008