【发布时间】:2020-04-27 10:57:34
【问题描述】:
我想写一个fibonacci 函数,在python 中表现得像coroutine。
这基本上是我想要完成的:
def fibonacci(limit: int) -> int:
...
fib = fibonacci(limit=100_000_000)
next(fib)
fib.send(10) # -> 55
next(fib) # -> 89
fib.send(15) # -> 610
...
我尝试根据下面的代码编写一些逻辑,但不幸的是这不是我想要的:
def fibonacci(limit: int) -> int:
a, b = 0, 1
while limit:
c: int = (yield b)
if c is not None:
a, b = b, a + b + c
else:
a, b = b, a + b
limit -= 1
谁能帮我找出python fibonacci协程的正确逻辑,我对如何正确地制作它有点困惑,提前谢谢!
【问题讨论】:
标签: python fibonacci coroutine