python 自定义迭代器 for i in 自己设计的迭代器
时间: 2023-11-18 14:18:17 浏览: 218
python学习之迭代器
在 Python 中,可以通过实现 `__iter__()` 和 `__next__()` 方法来创建自己的迭代器。`__iter__()` 方法返回迭代器对象本身,而 `__next__()` 方法返回迭代器的下一个值。
以下是一个示例,演示如何创建一个自定义迭代器,并使用 `for` 循环遍历迭代器:
```python
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:
value = self.current
self.current += 1
return value
else:
raise StopIteration()
# 创建一个从0到4的迭代器
my_iterator = MyIterator(0, 5)
# 使用for循环遍历迭代器
for i in my_iterator:
print(i)
```
输出:
```
0
1
2
3
4
```
在上面的示例中,我们首先定义了一个名为 `MyIterator` 的迭代器类,该类实现了 `__iter__()` 和 `__next__()` 方法。`__init__()` 方法用于初始化迭代器的起始值和结束值。`__iter__()` 方法返回迭代器对象本身,而 `__next__()` 方法返回迭代器的下一个值,并在到达结束位置时抛出 `StopIteration` 异常。最后,我们创建了一个从0到4的迭代器,并使用 `for` 循环遍历迭代器,输出了每个迭代器的值。
阅读全文