在 Python 中,迭代器是一個實現(xiàn)了 __iter__
和 __next__
方法的對象。__iter__
方法返回迭代器對象自身,而 __next__
方法返回下一個元素。換句話說,迭代器是一個可以逐個返回元素的對象。
下面是一個簡單的迭代器示例,演示了如何實現(xiàn) __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
的整數(shù)序列。__iter__
方法返回迭代器對象自身,而 __next__
方法返回下一個元素。當沒有更多元素時,__next__
方法引發(fā) StopIteration
異常,表示迭代已完成。
下面的示例演示了如何使用 MyIterator
類來迭代并打印從 0 到 4 的整數(shù)序列:
it = MyIterator(5)
for i in it:
print(i)
輸出:文章來源:http://www.zghlxwxcb.cn/news/detail-635342.html
0
1
2
3
4
在循環(huán)中,for
語句自動調(diào)用 iter()
函數(shù)獲取迭代器,然后重復調(diào)用 __next__
方法獲取下一個元素,直到發(fā)生 StopIteration
異常為止。文章來源地址http://www.zghlxwxcb.cn/news/detail-635342.html
到了這里,關(guān)于Python迭代器的__iter__和__next__詳細教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!