Iterator,Iterable
来源:互联网 发布:mysql declare 赋值 编辑:程序博客网 时间:2024/05/18 15:08
Iterable(可迭代对象)是实现了__iter__方法的对象,其中__iter_需要返回一个Iterator对象。
Iterator(迭代器)是实现了 __iter__、__next__的对象,__iter__方法返回对象本身。
class Iterable: def __iter__(): return Iterator()class Iterator: def __init__(): self.start=-1 def __iter__(): return self def __next__(): self.start +=1 if self.start >10: raise StopIteration return self.start
iter()会调用__iter__方法,next()调用__next__ 方法。
进行for in 循环时会先调用用iter()得到Iterator,然后不断调用Iterator的next(),实现迭代。
下面是collections模块中Iterable,Iterator的实现情况
>>> from collections import Iterable>>> help(Iterable)Help on class Iterable in module collections.abc:class Iterable(builtins.object) | Methods defined here: | | __iter__(self) |
>>> from collections import Iterator>>> help(Iterator)Help on class Iterator in module collections.abc:class Iterator(Iterable) | Method resolution order: | Iterator | Iterable | builtins.object | | Methods defined here: | | __iter__(self) | | __next__(self) | Return the next item from the iterator. When exhausted, raise StopIteration
迭代器是一次性消耗品,使用完了以后就空了,使用copy包中的deepcopy可以得到多个相同迭代器。
阅读全文
0 0
- Iterator,Iterable
- Java Iterable、Iterator、iterator区别
- iterator与iterable
- Iterator && Iterable Collection && Map
- Iterator与Iterable接口
- Iterator和Iterable接口
- python Iterable和Iterator
- [note] Iterator and Iterable
- PYTHON: iterator & iterable & sequence
- iterator和iterable
- Iterator、listIterator、Iterable
- Iterable Iterator Java
- Iterator和Iterable
- Python iterator和iterable
- 迭代器Iterable和Iterator
- Iterable与Iterator 区别
- Java Collection Iterable Iterator
- Iterator和Iterable解析
- java三大特性之多态小白学习心得
- UI效果(3)
- IOS控件系列--滚动列表上下滑动时顶部视图固定与滑动效果(Swift版)
- 天天学Linux命令40--ifconfig命令
- dom-节点类型
- Iterator,Iterable
- 安卓最简单的轮播图实现无限轮播
- 1. 安装、登录CentOS7
- c:forEach varStatus属性
- 如何利用本地硬盘装系统?教你快速装系统
- HTML5可以制作非常华丽的动画效果
- 了解辅音
- kickstart自动化安装出现重复安装的问题解决
- Linux基础知识