Python中的迭代器協議是一種協議,用于定義對象的迭代行為。根據迭代器協議,一個可迭代對象需要實現兩個方法:__iter__()方法和__next__()方法。
__iter__()方法:該方法返回一個迭代器對象,用于執行實際的迭代操作。通常在可迭代對象的__iter__()方法中直接返回self即可。
__next__()方法:該方法返回可迭代對象中的下一個元素。當所有元素都被迭代完畢時,拋出StopIteration異常。在每次調用__next__()方法時,迭代器應該更新內部狀態以指向下一個元素。
通過實現迭代器協議,可以讓對象支持迭代操作,例如在for循環中使用該對象。常見的可迭代對象包括列表、元組、字典等。Python內置的一些數據結構和函數也實現了迭代器協議,例如range()、enumerate()等。