1.可迭代对象
在python中, 一切皆对象, 但凡是可以用for循环进行遍历取值的对象都可以称之为可迭代对象, 可迭代对象在程序的一个执行周期中,可以无限轮次的进行循环遍历
2.迭代器
a.一个可迭代对象主要包含两个部分
1)序列 2)迭代器
b.一个可迭代对象通过__iter__()便可以获得一个迭代器, 这个迭代器可以通过for进行循环取值, 迭代器的遍历只可以向前不可以向后(序列),也就是说一个迭代器,遍历取值完以后就会被销毁.
c.迭代器必须实现next()方法, 每调用一次next()方法,就会取出一个数值,当取完值以后,如果继续调用next()方法就会抛出异常, for 内部就实现了next()方法, 并进行了异常的处理
d.可迭代对象是将数据全部保存在内存中, 而使用迭代器, 可以在需要使用时,再进行遍历取值, 节省内存开销
3.生成器
一个生成器就是一个特殊的迭代器,只需要一个yield关键字就可以实现一个生成器, 生成器一定是迭代器,但迭代器不一定是生成器