python-迭代器
迭代器
iterate迭代实现了__iter__
内置特殊方法
使用迭代器与列表的区别:
可能只需要返回下一个值就可以了,并不需要一次获取所有数据
列表一次获取所有值占用内存高,而迭代器一次返回一个值,占用内存低
1
2
3
4
5
6
7
8
9class Fibs():
def __init__(self):
self.a = 0
self.b = 1
def __next__(self):
self.a, self.b = self.b, self.a + self.b
return self.a
def __iter__(self):
return self实现了
__iter__
的对象是可迭代的,实现了__next__
的对象是迭代器。1
2
3
4
5
6fibs = Fibs()
for f in fibs:
print(f)
if f > 1000:
break
从迭代器创建序列
虽然可以使用序列,但是迭代器其实也可以创建序列
1 | class TestIterator(): |