Python 定义一个迭代器类
在 Python 中,迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。要创建一个迭代器类,我们需要实现 __iter__()
和 __next__()
方法。
实例
class MyIterator:
def __init__(self, start, end):
self.current = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.current < self.end:
num = self.current
self.current += 1
return num
else:
raise StopIteration
# 使用迭代器
my_iter = MyIterator(1, 5)
for num in my_iter:
print(num)
def __init__(self, start, end):
self.current = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.current < self.end:
num = self.current
self.current += 1
return num
else:
raise StopIteration
# 使用迭代器
my_iter = MyIterator(1, 5)
for num in my_iter:
print(num)
代码解析:
__init__
方法:初始化迭代器,设置起始值start
和结束值end
。__iter__
方法:返回迭代器对象本身,这是迭代器协议的一部分。__next__
方法:返回迭代器的下一个值。如果当前值小于结束值,则返回当前值并将当前值加1;否则,抛出StopIteration
异常,表示迭代结束。
输出结果:
1 2 3 4
点我分享笔记