迭代器是一个实现了迭代器协议的容器对象,它基于以下两个基本方法:
    next: 返回容器的下一个元素
    iter: 返回迭代器本身

    迭代器可以利用内置的iter函数和一个序列来创建。例如:

    1. i = iter('abd')
    2. print(next(i))

    创建自定义的迭代器,可以编写一个具有next方法的类,并且这个类提供返回迭代器实例的iter特殊方法:

    1. class CountDown:
    2. def __init__(self, step):
    3. self.step = step
    4. def __next__(self):
    5. if self.step <= 0:
    6. raise StopIteration
    7. self.step -= 1
    8. return self.step
    9. def __iter__(self):
    10. return self
    11. if __name__ == '__main__':
    12. for i in CountDown(3):
    13. print(i)
    1. for i in [1, 2, 3, 4]:
    2. pass
    3. # 完全等价于:
    4. it = iter([1, 2, 3, 4]) #首先获得iterable对象;
    5. # 循环
    6. while True
    7. try
    8. # 获得下一个值
    9. x = next(it)
    10. except StopIteration:
    11. # 遇到StopIteration终止
    12. break