在Python 中建立基本迭代器
假設您有一個封裝值集合的類,並且您想要建立一個迭代器來允許您按順序存取這些值。
要建立迭代器,請實作迭代器協議,這需要定義兩個方法:
1. __iter__(): 初始化並傳回迭代器物件本身。
2. __next__(): 傳回序列中的下一個值,如果沒有更多值,則引發 StopIteration。
示例迭代器:
考慮以下類的列表值:
class Example: def __init__(self, values): self.values = values # __iter__ returns the iterable itself def __iter__(self): return self # __next__ returns the next value and raises StopIteration def __next__(self): if len(self.values) > 0: return self.values.pop(0) else: raise StopIteration()
用法:
使用此迭代器,您可以迭代範例類別中的值:
e = Example([1, 2, 3]) for value in e: print("The example object contains", value)
This將列印:
The example object contains 1 The example object contains 2 The example object contains 3
迭代器自訂:
如上例所示,迭代器的next 方法可以控制如何取得和傳回值,為自訂迭代器提供更大的靈活性。
以上是如何在 Python 中使用 `__iter__` 和 `__next__` 建立自訂迭代器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!