Python函数可以迭代,这是因为Python中的函数可以返回一个迭代器对象。在Python中,迭代器是一个定义了next()方法的对象,该方法返回可迭代对象中的下一个元素。当没有元素可以迭代时,该函数会引发 StopIteration 异常。
示例一:
def square(n):
for i in range(1, n):
yield i*i
squared_nums = square(5)
print(next(squared_nums)) # 输出 1
print(next(squared_nums)) # 输出 4
print(next(squared_nums)) # 输出 9
在上面的示例中,square()
函数是一个生成器函数,使用yield
关键字返回一个可迭代对象。 在使用next()
函数迭代器时,每调用一次next()
函数都会返回生成器函数中下一个元素的值。
示例二:
def countdown(n):
while n > 0:
yield n
n -= 1
for i in countdown(5):
print(i)
在上面的示例中,countdown()
函数也是一个生成器函数,在循环中使用yield关键字返回可迭代对象。 然后,我们使用for
循环在countdown()
函数中迭代,打印函数返回的值。
综上所述,Python函数可以迭代,因为Python中的函数可以返回一个迭代器对象。通常使用生成器函数来创建迭代器,这使得代码可读性更高,同时允许我们在函数中分块生成新的值用于迭代。