首页 >后端开发 >Python教程 >如何在 Python 中使用 `__iter__` 和 `__next__` 构建自定义迭代器?

如何在 Python 中使用 `__iter__` 和 `__next__` 构建自定义迭代器?

Patricia Arquette
Patricia Arquette原创
2024-12-17 14:56:17857浏览

How to Build Custom Iterators in Python Using `__iter__` and `__next__`?

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn