1、迭代器协议是指:对象必须提供一个NEXT方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代(只能往后走不能往前退)
2、可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义了一个_iter_()方法),列表、元祖、集合等都不是可迭代对象,但是它们内部都定义了_iter_()方法,生成可迭代对象
3、协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环,sum,min,max函数等)使用迭代器协议访问对象。
l = [1,2,4,5,6] f = l.__iter__() print(f.__next__()) print(f.__next__()) print(f.__next__()) print(f.__next__()) print(f.__next__()) print(f.__next__()) 运行结果 1 2 4 5 6 Traceback (most recent call last): File "E:/study python/Day3/迭代器.py", line 12, in <module> print(f.__next__()) StopIteration Process finished with exit code 1