yield python添加以前的函数结果

时间:2013-12-05 16:06:58

标签: python yield

我想编写一个使用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)的调用而不是我期望的那样。

1 个答案:

答案 0 :(得分:5)

每次都保存该值。

def my_function(f, value):
  yield value
  while True:
    value = f(value)
    yield value