Python yield语法的使用分析
Python的yield关键字用于实现生成器,可以理解为return的升级版。yield不像return会结束函数的执行,而是将函数的执行暂停,并返回yield后面表达式的值,下次调用函数时从当前位置继续执行。
使用yield实现的函数被称为生成器(generator),生成器是一种特殊的迭代器,可以通过for循环来迭代。
下面通过一个简单的例子来说明如何使用yield实现生成器。
实例
#!/usr/bin/python3
def fibonacci(n): # 生成器函数 - 斐波那契
a, b, counter = 0, 1, 0
while True:
if (counter > n):
return
yield a
a, b = b, a + b
counter += 1
f = fibonacci(10) # f 是一个迭代器,由生成器返回生成
while True:
try:
print (next(f), end=" ")
except StopIteration:
sys.exit()
相关文章