python迭代器原理
时间: 2023-07-05 18:14:26 浏览: 103
Python中的迭代器是一种访问集合内元素的对象,而不用暴露集合的底层表示。迭代器可以被用来遍历一个序列,例如列表或者字符串。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完毕。迭代器只能往前不会后退。
Python中的迭代器对象必须实现两个方法: `__iter__()` 和 `__next__()`。
`__iter__()` 方法返回迭代器对象本身。这个方法在 for 循环和 in 语句中会被调用。
`__next__()` 方法返回下一个值,并在所有的值都被返回后抛出 StopIteration 异常,通知调用者迭代已经结束。
下面是一个简单的迭代器示例:
```python
class MyIterator:
def __init__(self, limit):
self.limit = limit
self.current = 0
def __iter__(self):
return self
def __next__(self):
if self.current < self.limit:
result = self.current
self.current += 1
return result
else:
raise StopIteration
```
使用这个迭代器对象可以像这样遍历:
```python
it = MyIterator(5)
for i in it:
print(i)
```
这将打印出:
```
0
1
2
3
4
```
阅读全文