温馨提示×

Python迭代器如何实现自定义逻辑

小樊
82
2024-11-09 12:56:43
栏目: 编程语言

在Python中,要创建一个自定义迭代器,需要实现两个特殊的方法:__iter__()__next__()__iter__() 方法返回迭代器对象本身,而 __next__() 方法负责返回容器的下一个值。当容器中没有更多元素时,__next__() 方法应该抛出一个 StopIteration 异常。

以下是一个简单的自定义迭代器示例,用于计算斐波那契数列的前n个数:

class FibonacciIterator:
    def __init__(self, n):
        self.n = n
        self.current = 0
        self.prev = 0
        self.a = 0
        self.b = 1

    def __iter__(self):
        return self

    def __next__(self):
        if self.current < self.n:
            result = self.a
            self.a, self.b = self.b, self.a + self.b
            self.current += 1
            return result
        else:
            raise StopIteration

# 使用自定义迭代器
fib_iterator = FibonacciIterator(10)
for num in fib_iterator:
    print(num)

在这个示例中,我们创建了一个名为 FibonacciIterator 的类,它接受一个参数 n,表示要计算的斐波那契数列的前n个数。我们在类中实现了 __iter__()__next__() 方法,以便该类可以迭代器使用。当我们使用 for 循环遍历 FibonacciIterator 对象时,它将按顺序生成斐波那契数列的前n个数。

0