Python 使用函数';它一次又一次地返回自身的值?

Python 使用函数';它一次又一次地返回自身的值?,python,return,infinite,Python,Return,Infinite,我不知道如何实现这一点,但我正试图通过只需将一个初始值传递到函数中,而不必手动输入新值来反复使用函数的返回值。这在python中可能吗?3是初始值,4是该函数的返回值。我希望能够传入'4',而不必进行打印(test2(4))来获得下一个值,相反,我希望能够通过使用函数的前一个返回值来获得3、4、5、6 def test(n): return n + 1 def test2(n): return test(n) num = 3 while(True): print(test2(n

我不知道如何实现这一点,但我正试图通过只需将一个初始值传递到函数中,而不必手动输入新值来反复使用函数的返回值。这在python中可能吗?3是初始值,4是该函数的返回值。我希望能够传入'4',而不必进行打印(test2(4))来获得下一个值,相反,我希望能够通过使用函数的前一个返回值来获得3、4、5、6

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的回答中提到的,这听起来很像生成器或对象(初始化+状态)

给予

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

func = test(5).next

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

这4行注释是否达到了预期效果?您可以在
while
循环中分配
num=test2(num)
(然后添加
print(num)
)以查看结果。我不认为我完全掌握了您在这里要做的事情,但我想您可能需要使用。中断条件是什么?你在问递归函数吗?我更新了一些关于我想做什么的信息。。我认为这不一定是递归。是的,这些线条是理想的效果。我只是不想在函数中手动使用下一个值,我只想让它继续使用上一个返回值。
5
6
7
func = test(5).next

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