我想编写一个使用yield的函数,但每次发送给函数的字段值都是之前的结果:
例如,如果调用f(5)返回10,下一个调用将是f(10)。如果f(10)的结果返回18,则下一个呼叫将是f(18)
我该怎么办? 我写了这段代码:
def my_function(f,init_value):
yield init_value
while True:
yield f(init_value)
但是它总是返回对f(init_value)的调用而不是我期望的那样。
答案 0 :(得分:5)
每次都保存该值。
def my_function(f, value):
yield value
while True:
value = f(value)
yield value