迭代器协议

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
原文地址:https://www.cnblogs.com/AkumaIII/p/8144250.html