迭代器(iterator)
实现了__iter__和__next__方法的对象都称为迭代器。迭代器是一个有状态的对象,在调用next() 的时候返回下一个值,如果容器中没有更多元素了,则抛出StopIteration异常。
迭代器是一种Lazy Load的模式,只有在调用时才生成值,没有调用的时候就等待下一次调用。
生成器: 生成器是一个返回迭代器的函数
几个大是大非的问题要明确:
- 实现了_iter_()方法的对象,叫做【可迭代对象】
- 实现了next()方法的对象,叫做【迭代器对象】
- 往往【迭代器对象】也同时实现了_iter_()方法,同时成为【可迭代对象】
- 生成器就是一个迭代器,它是用生产器函数那种语法,来得到的一个【迭代器对象】
next()
函数获取值的时候,才会取一个值返回,内存开销非常小。作者:diablo
链接:https://www.zhihu.com/question/20829330/answer/469905401
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。