本文为同学们讲解Python中可迭代对象、迭代器与生成器的相关内容。
首先看三个特殊方法(循环时自动调用)
一、可迭代对象:能够逐个返回成员的对象
可迭代对象大致包含以下种类
备注说明:
使用情况:
容器(序列、非序列)
类对象 __iter__()
类对象 __getitem__()
二、迭代器:表示一连串数据流对象,重复调用__next__()方法,逐个返回数据流中的成员
迭代器大概有两种类型
备注说明:
迭代器自定义实现
三、生成器:实现迭代器的便捷方式。通过yield表达式实现
yield表达式不再详细介绍,详细了解yield运行方式,可点击【对照return讲解yield】文章
生成器的两种形式:
列表推导式详细可点击【列表推导式及演变姿势】
其句法与推导式相同,区别在于它是用圆括号而不是用方括号或花括号括起来
生成器表达式
典型生成器
常用生成器
关于协程以后讨论,协成的底层就是生成器
下面示例大家都称为 生产者消费者模型
强调一下 v=yield value 的执行方式:
先yield value返回value,暂停。生成器外面遇到send回到生成器执行n=value赋值,继续执行到yield value返回value后,再暂停
转载自今日头条python一看便懂。