【发布时间】:2018-11-13 12:40:49
【问题描述】:
这只是一个演示代码,用于了解递归函数中的屈服行为。我希望它返回一个可迭代列表 [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 是一个与 return 一样使用的关键字,但该函数将返回一个生成器。不是实际值。