我知道yield 会动态生成一个值,据我所知,这意味着它不会将值保留在内存中,因此当前值不应该与最后一个值进行交互。
但我只想确定是这样,有人可以确认是否可能吗?
我将使用5作为number的值。
没有发电机的例子:
def factorial(number):
result = number
if number <= 1:
return 1
else:
for x in reversed(range(1, number)): # (4,1) reversed
result *= x # 5*4*3*2*1
return result # returns 120
是否可以通过使用 yield 函数来做同样的事情?如何?
谢谢
相关分类