python - 在 Python 中使用 asyncio 打破无限循环
问题描述
我希望能够在指定的时间后打破无限循环。我希望我可以用 Pythons 实现这一点asyncio.wait_for
。
我有以下示例
import asyncio
async def infinite_loop():
i = 0
while True:
i = i + 1
async def main():
try:
await asyncio.wait_for(infinite_loop(), 1)
except:
print("Break out!")
asyncio.run(main())
我希望infinite_loop
它在一秒钟后停止,但它没有这样做,我不明白为什么。
我正在寻找这种行为,因为我正在为可能会创建进入无限循环的函数的类中的初学者编写测试脚本。我需要一种方法来可靠地摆脱在unittest
. 目前,当它遇到这样的功能时,它会挂起并且不会运行后续测试,即使它们会通过。
解决方案
推荐阅读
- mysql - 在 CentOS 上的 whm 中更改 mysqld 的启动选项
- indexing - 如何利用 torch.topk() 提供的索引?
- certificate - 如果我使用 CA 授权证书对我的应用程序(exe 文件)进行一次代码签名,它会反映我安装它的位置吗?
- jpa - 通过 spring 规范创建 where 子句
- angular - 与 formControlName 绑定后,类型上不存在属性
- visual-studio-code - 如何在 VsCode 中使用 GlobalCache 配置 Yarn Berry、Eslint?
- javascript - 画布:拖放图像
- performance - dns-prefetch + preconnect vs. 浏览器缓存
- java - Spring Boot 单元测试构造函数注入
- python - 流控制 Pyserial