迭代器协议

Posted on 2017-12-29 14:12  阿骏骏  阅读(119)  评论(0编辑  收藏  举报

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

 

Copyright © 2024 阿骏骏
Powered by .NET 8.0 on Kubernetes