Python ä¸ yield 的用法很åƒ� return,都是æ��供一个返回值,但是 yield å’Œ return 的最大区别在于,return 一旦返回,则代ç �段执行结æ�Ÿï¼Œä½†æ˜¯ yield 在返回值以å�Žï¼Œä¼šäº¤å‡º CUP 的使用æ�ƒï¼Œä»£ç �段并没有直接结æ�Ÿï¼Œè€Œæ˜¯åœ¨æ¤å¤„䏿–,当调用 send() 或者 next() 方法之å�Žï¼Œyield å�¯ä»¥ä»Žä¹‹å‰�䏿–çš„åœ°æ–¹ç»§ç»æ‰§è¡Œã€‚
在一个函数ä¸ï¼Œä½¿ç”¨ yield 关键å—,则当å‰�的函数会å�˜æˆ�生æˆ�器。
下�生�一个�波那契数列。
def fib(n):
index = 0
a = 0
b = 1
while index < n:
yield b
a,b = b, a+b
index += 1
生�器对象:
fib = fib(100) print(fib)
打�出�的结果是一个生�器对象,并没有直接把我们想�的值打�出�。
<generator object fib at 0x7fef20062ac0>