# 生成器函数,只要函数中有yield关键字
#什么是迭代协议 --> __iter__
#迭代器是什么? 迭代器是访问集合内元素的一种方式, 一般用来遍历数据
#迭代器和以下标的访问方式(list[0][1])不一样, 迭代器是不能返回的, 迭代器提供了一种惰性方式数据的方式
自定义的迭代器和可迭代对象分别需继承collections模块下的Iterator和Iterable
可迭代对象可是使用iter(Iterable)成为迭代器对象
可迭代对象Iterable中要实现__iter__ 或者__getitem__ 如果未找到__iter__则会去找__getitem__(实现遍历即下标访问)
迭代器Iterator对象要实现__next__并继承可迭代对象
使用
__iter__ 正向可迭代
for x in FloatRange(1.0, 4.0, 0.5)
__reversed__ 反向可迭代
for x in reversed(FloatRange(1.0, 4.0, 0.5))
for x in list实现
实例