Python函数可以通过增加特殊方法__iter__(),使得函数能够返回一个迭代器,从而实现可迭代。在Python语言中,迭代器是一种可以在一个函数执行过程中不断返回值的对象。通过实现__iter__()方法,可以将一个函数转换成一个返回迭代器的生成器。以下是Python函数实现迭代器的示例代码:
def fibonacci(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
for i in fibonacci(5):
print(i)
在上述代码中,定义了一个函数fibonacci(n),该函数使用yield关键字返回一个生成器对象。在循环中使用了这个生成器对象,来逐个输出生成器返回的值。这里生成器的值是斐波那契数列的前五个数。
另一个示例代码如下:
def square(n):
for i in range(n):
yield i**2
squares = square(5)
print(next(squares))
print(next(squares))
print(next(squares))
print(next(squares))
print(next(squares))
在上述代码中,我们定义一个名为square函数,该函数实现的功能是返回一个可迭代的生成器对象,该生成器逐个返回0到n^2之间的数字。在循环中使用该生成器,逐个输出生成器返回的值。注意,使用Python函数实现迭代器需要使用yield关键字。