一遍又一遍地使用函数的返回值?

时间:2019-11-13 05:23:38

标签: python return infinite

我不确定如何完成此操作,但是我试图反复使用函数的返回值,方法是仅将一个初始值传递给函数,而不必手动输入新值。这可能在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..```

2 个答案:

答案 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)```
相关问题