在循环内运行函数而不停止



我想运行循环,并在不中断循环的情况下用time.sleep((从函数中返回一些值。

如何使函数和循环同时工作?

函数prt_1使用time.sleep(5(。我不想在循环中等待这个时间。我需要循环在功能休眠时继续运行

import time
def prt_1(i):
while True:
print(f"AAA_{i}")
time.sleep(5)
for i in range(100):
print(i)
prt_1(i)
time.sleep(0.5)

得到这样的东西:

0
AAA_0
1
2
3
4
5
AAA_5

这将是您通过将每个循环放在一个单独的线程中来寻找的答案:

from threading import Thread
import time
def prt_1(i):
while True:
print(f"AAA_{i}")
time.sleep(5)
for i in range(100):
thread = Thread(target=prt_1, args=(i,))
thread.start()
time.sleep(0.5)

例如,您可以查看"asyncio"来创建可以并发运行的方法。

这将满足你的需要(如果我理解正确的话(!

import asyncio
async def prt_1(i):
while True:
print(f"AAA_{i}")
await asyncio.sleep(5)
async def main():
for i in range(100):
print(i)
asyncio.create_task(prt_1(i))
await asyncio.sleep(0.5)

asyncio.run(main())

Asyncio.create_task将调用您的函数,并让它与循环同时运行。您还必须进行修改,使函数成为"async"函数,并且循环也是一体的。

相关内容

  • 没有找到相关文章

最新更新