Python 是一種高級編程語言,擁有眾多強大的功能和特性。迭代器協議就是其中之一,它可以讓我們輕松地遍歷集合中的每個元素。
在 Python 中,可迭代的對象是指實現了迭代器協議的對象。這意味著,它必須包含兩個方法:__iter__()
和__next__()
。
class MyIterable: def __init__(self, data): self.data = data self.index = 0 def __iter__(self): return self def __next__(self): if self.index >= len(self.data): raise StopIteration value = self.data[self.index] self.index += 1 return value my_iterable = MyIterable([1, 2, 3]) for i in my_iterable: print(i)
在上述代碼中,我們定義了一個類MyIterable
,它包含了__iter__()
和__next__()
方法。當我們遍歷它的實例my_iterable
時,會調用MyIterable
的__next__()
方法,不斷返回其中的元素。
如果我們忘記了調用__iter__()
方法,或者__next__()
方法沒有正確地實現,就會導致遍歷失敗。因此,我們需要注意這兩個方法的正確實現。
迭代器協議在 Python 中有著廣泛的應用,例如在 for 循環中、列表生成式中等。通過了解它的原理和實現方式,我們可以更好地理解這些使用方式,發揮 Python 的強大功能。