有什么方法可以混合使用递归和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
我只想知道这是否可以递归进行。