在 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中文网其他相关文章!