Я написал этот код, чтобы попытаться понять, что происходит.
Может кто-нибудь помочь мне понять, почему генератор не вызывает себя рекурсивно? Как написать рекурсивные генераторы?
def f_yield(n):
print(n)
if n < 5:
yield n
else:
yield f_yield(n-3)
def f_return(n):
print(n)
if n < 5:
return n
else:
return f_return(n-3)
[i for i in f_yield(12)]
# prints 12
f_return(12)
# prints 12 9 6 3