我编写了这段代码以尝试了解正在发生的事情。
任何人都可以帮助我理解生成器为何不递归调用自身的原因吗? 如何编写递归生成器?
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