在 Python 中,迭代器是一個實現了 `__iter__` 和 `__next__` 方法的對象。`__iter__` 方法返回迭代器對象自身,而 `__next__` 方法返回下一個元素。換句話說,迭代器是一個可以逐個返回元素的對象。 下麵是一個簡單的迭代器示例,演示瞭如何實現 `__iter ...
在 Python 中,迭代器是一個實現了 __iter__
和 __next__
方法的對象。__iter__
方法返回迭代器對象自身,而 __next__
方法返回下一個元素。換句話說,迭代器是一個可以逐個返回元素的對象。
下麵是一個簡單的迭代器示例,演示瞭如何實現 __iter__
和 __next__
方法:
class MyIterator:
def __init__(self, max_value):
self.max_value = max_value
self.current_value = 0
def __iter__(self):
return self
def __next__(self):
if self.current_value >= self.max_value:
raise StopIteration
value = self.current_value
self.current_value += 1
return value
該迭代器可以生成從 0 到 max_value - 1
的整數序列。__iter__
方法返回迭代器對象自身,而 __next__
方法返回下一個元素。當沒有更多元素時,__next__
方法引發 StopIteration
異常,表示迭代已完成。
下麵的示例演示瞭如何使用 MyIterator
類來迭代並列印從 0 到 4 的整數序列:
it = MyIterator(5)
for i in it:
print(i)
輸出:
0
1
2
3
4
在迴圈中,for
語句自動調用 iter()
函數獲取迭代器,然後重覆調用 __next__
方法獲取下一個元素,直到發生 StopIteration
異常為止。