第一章:生成器与迭代器
1.1 迭代器协议与可迭代对象
1.1.1 迭代的基本概念
迭代是Python最强大的功能之一,是访问集合元素的一种方式。任何实现了__iter__()
和__next__()
方法的对象都是迭代器。
class MyRange:
def __init__(self, start, end):
self.current = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.current < self.end:
current = self.current
self.current += 1
return current
else:
raise StopIteration()
for num in MyRange(1, 5):
print(num) # 输出1-4
1.1.2 可迭代对象与迭代器区别
- 可迭代对象:实现
__iter__()
方法 - 迭代器:同时实现
__iter__()
和__next__()
- 所有迭代器都是可迭代对象,但反之不成立