Python中yield返回生成器的方法是什么
发表于:2024-11-16 作者:千家信息网编辑
千家信息网最后更新 2024年11月16日,这篇文章主要讲解了"Python中yield返回生成器的方法是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python中yield返回生成器的方
千家信息网最后更新 2024年11月16日Python中yield返回生成器的方法是什么
这篇文章主要讲解了"Python中yield返回生成器的方法是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python中yield返回生成器的方法是什么"吧!
一、迭代器
逐项读取列表,称为迭代。
mylist = [1, 2, 3]for i in mylist: # 可迭代对象 print(i)
列表解析式同样是一个迭代器。
mylist = [x*x for x in range(3)]for i in mylist: print(i)'''014'''
所有 for...in... 都是迭代器,包括列表、字符串、文件等等。
但是,迭代器所有的值都存储在内存中,十分浪费内存。
因此有了生成器的概念。
二、生成器
生成器是一种迭代器,这种迭代器只能迭代一次。
生成器不会一次性存储所有的值,而是会动态的生成值。
mygenerator = (x*x for x in range(3))for i in mygenerator: print(i)
生成器只可执行一次,再次执行时不会输出任何东西。
三、yield
1.例子一
yield 类似于 return 关键字,只是函数将返回一个生成器。
# 创建生成器def createGenerator(): mylist = range(10) for i in mylist: print(i) # 验证函数调用时并无执行 yield i*imygenerator = createGenerator() print(mygenerator) ## 使用生成器for i in mygenerator: print(i)# 再次执行 返回为空 没有值了
函数将返回一组只需要读取一次的值,可以大大的提升代码性能。
在调用函数时,函数体中的代码并不会执行,函数只返回生成器对象。
代码每次从使用生成器时停止的地方继续。
2.例子二
#Python学习交流群:531509025# 学习另外一个例子def foo(): print("starting...") while True: res = yield 4 # 函数并不真正执行 print("res:", res)g = foo() # 得到一个生成器对象print(next(g)) # 真正执行print("*"*20)print(next(g)) # 从上一次停止的地方继续执行'''starting...4********************res: None4'''print(g.send(7))
执行 yield 之后,才会跳出 while 循环。
next 函数用于执行下一步操作。
send 函数用于发送一个参数给生成器。且 send 方法中包含 next 方法。
感谢各位的阅读,以上就是"Python中yield返回生成器的方法是什么"的内容了,经过本文的学习后,相信大家对Python中yield返回生成器的方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
生成
生成器
函数
迭代
方法
学习
代码
例子
对象
内存
内容
再次
地方
存储
验证
一次性
东西
关键
关键字
动态
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
vue渲染服务器的图片
计算机网络技术是在
计算机二级是网络技术吗
学信网万方数据库检测系统
互联网高科技人才的性格特征
游戏服务器多开需要什么配置
联通网络安全宣传版
面试软件开发
长沙网络安全现状
外企软件开发公司怎么样
服务器3块硬盘
迈瑞软件开发笔试题目
列举身边网络安全威胁的例子
三门峡网络技术选择
网络安全法对个人哪些影响
互联网科技商业计划书ppt
网络安全主题班会ppt初中
电脑设服务器
drem的服务器里面的建筑
网络技术实现兴边富民
服务器网络要不要管理员
互联网科技新贵
驱动是硬件软件开发
互联网高科技人才的性格特征
网络安全工作推进会议讲课稿
神通数据库无法启动的解决
c语言软件开发系统有哪些
画出软件开发模型的v模型图
信息网络安全专项应急预案
潍坊港业软件开发