一遍又一遍地使用函数本身的 return 值?

Using a function's return value in itself over and over again?

我不确定如何完成此操作,但我正在尝试一遍又一遍地使用函数的 return 值,只需将一个初始值传递给函数,而不必手动输入新值。这在 python 中可能吗? 3 是初始值,4 是该函数的 return 值。我希望能够传入 '4' 而不必执行 print(test2(4)) 来实现下一个值,而是我希望能够通过使用来获得 3、4、5、6来自函数的前一个 return 值。

def test(n):
  return n + 1

def test2(n):
  return test(n)


num = 3
while(True):
  print(test2(num))

#num = 3
#num = 4 - 1st iteration
#num = 5 - 2nd iteration 
#num = 6 - 3rd iteration, and so on..```

做到了!感谢赛博。我仍然不是 100% 确定它是如何工作的... python!

的新手
num = 3

while(True):
  num = test2(num)
  print(num)
  sleep(3)```

如@hymnsfordisco 的回答所述,这听起来很像生成器或对象(初始化 + 状态)。

def test(initial):
    x = initial
    while True:
        yield x
        x += 1

nums = test(5)
for v in nums:
    print v
    if v > 6:
      break

给予

5
6
7

如果您希望将其作为函数而不是循环:

func = test(5).next

func() # -> 5
func() # -> 6
func() # -> 7