一遍又一遍地使用函数本身的 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
我不确定如何完成此操作,但我正在尝试一遍又一遍地使用函数的 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