我不确定如何完成此操作,但是我试图反复使用函数的返回值,方法是仅将一个初始值传递给函数,而不必手动输入新值。这可能在python中吗? 3是该函数的初始值,4是该函数的返回值。我希望能够传递'4'而不需要执行print(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..```
答案 0 :(得分:1)
正如@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
答案 1 :(得分:0)
做到了!感谢Seb。我仍然不是100%知道它是如何工作的... python的新功能!
num = 3
while(True):
num = test2(num)
print(num)
sleep(3)```