递归函数中Python奇怪的屈服行为
这只是一个演示代码,用于理解递归函数中的屈服行为。我希望它返回一个iterable列表[5,4,3],但它在第一次迭代时停止,只返回[5] 有人能解释为什么会这样吗递归函数中Python奇怪的屈服行为,python,recursion,yield,Python,Recursion,Yield,这只是一个演示代码,用于理解递归函数中的屈服行为。我希望它返回一个iterable列表[5,4,3],但它在第一次迭代时停止,只返回[5] 有人能解释为什么会这样吗 def yield_test(input): if input > 3: yield_test(input-1) yield input print(list(yield_test(5))) 输出:[5] 预期产出: [5,4,3]您需要从yield_test()中屈服,并在函数中颠倒屈服
def yield_test(input):
if input > 3:
yield_test(input-1)
yield input
print(list(yield_test(5)))
输出:[5]
预期产出:
[5,4,3]您需要
从yield_test()中屈服,并在函数中颠倒屈服
的顺序:
def yield_test(input):
yield input
if input > 3:
yield from yield_test(input-1)
您需要yield from yield_test()
并在函数中反转yield
s的顺序:
def yield_test(input):
yield input
if input > 3:
yield from yield_test(input-1)
yield是一个与return类似的关键字,但函数将返回一个生成器。不是实际值。yield是一个与return类似的关键字,但函数将返回一个生成器。不是实际值。