最佳答案
有什么方法可以混合递归和 yield
语句吗?例如,无限数生成器(使用递归)类似于:
def infinity(start):
yield start
# recursion here ...
>>> it = infinity(1)
>>> next(it)
1
>>> next(it)
2
我试过:
def infinity(start):
yield start
infinity(start + 1)
还有
def infinity(start):
yield start
yield infinity(start + 1)
但是他们都没有按我说的做,第一个在生成 start
之后就停止了,第二个生成 start
之后就停止了,然后是发电机,然后就停止了。
注意: 请注意,我知道您可以使用 while 循环来完成此操作:
def infinity(start):
while True:
yield start
start += 1
我只想知道这是否可以递归完成。