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