要点导航
生成器
- 在Python中, 一边循环一边计算的机制, 称为生成器: generator 创建生成器: G = ( x*2 for x in range(5)) 可以通过 next(生成器) 函数获得生成器的下一个返回值 没有更多的元素时, 抛出 StopIteration 的异常 生成器也可以使for 循环,因为生成器也是可迭代对象
迭代器
概念: 拥有__iter__方法和__next__方法的对象就是迭代器
-
- 迭代
- 迭代是访问集合元素的一种方式,可以将某个数据集内的数据“一个挨着一个的取出来”,就叫做迭代
- 可迭代协议
- 协议就是互相规定好的。可迭代协议的定义非常简单,就是内部实现了 __iter__方法。
- 迭代
- 迭代器协议
- 迭代器协议:必须拥有__iter__方法和__next__方法
- 可以通过dir(对象)查看是否实现了__iter__,__next__等方法来判断对象是否为迭代器
- 也可以使用 isinstance(Iterator)来判断
for循环的本质
- 通过__iter__()获取该对象的一个迭代器对象
- 通过__next__()函数,依次获取下一个元素