Рекурсия по доходности
Есть ли способ смешать рекурсию и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
Я просто хочу знать, можно ли это сделать рекурсивно.