我知道这是不可能的。返回将退出它。有没有办法使之成为可能。我有while循环,它计算值。我想从while循环返回该值,并将其用于进一步处理,然后再次返回while循环,并在停止的地方继续。我知道返回会退出循环。如何使其成为可能。
这是示例代码:
import datetime
import time
def fun2(a):
print("count:", a)
def fun():
count = 0
while 1:
count = count+1
time.sleep(1)
print(count)
if count == 5:
return count
a = fun()
fun2(a)
我的输出:
1
2
3
4
5
count: 5
必需的输出:
1
2
3
4
5
count: 5
6
7
8
9
and goes on....
答案 0 :(得分:12)
好像您需要一个generator。生成器将在调用yield
时记住该值并将其next
整除为5(我认为是通过查看输出来假设),并记住较旧的状态,直到调用{{1 }}。另外请注意,这是一个无限生成器。
next
输出将为
def fun():
count = 0
while True:
count = count+1
print('inside fun', count)
if count % 5 == 0:
yield count
f = fun()
print(next(f))
print(next(f))