Recursión usando rendimiento
¿Hay alguna forma de mezclar recursividad yyield
declaración? Por ejemplo, un generador de números infinitos (usando recursividad) sería algo como:
def infinity(start):
yield start
# recursion here ...
>>> it = infinity(1)
>>> next(it)
1
>>> next(it)
2
Lo intenté
def infinity(start):
yield start
infinity(start + 1)
def infinity(start):
yield start
yield infinity(start + 1)
Pero ninguno de ellos hizo lo que quería, el primero se detuvo después de que cedióstart
y el segundo rindióstart
, luego el generador y luego se detuvo.
NOTA Por favor, sé que puedes hacer esto usando un ciclo while:
def infinity(start):
while True:
yield start
start += 1
Solo quiero saber si esto se puede hacer de forma recursiva.