You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mypy未检测到await返回None的函数调用错误,如何解决?

解决Mypy无法检测await非可等待对象的问题

你遇到的情况是Mypy默认未启用对await非可等待对象的检查,并非操作有误或已知限制,通过以下方式可以让Mypy检测到该错误:

  • 临时启用检查(命令行方式):
    运行Mypy时添加--disallow-awaiting-non-awaitable参数,示例命令:

    mypy --disallow-awaiting-non-awaitable your_script.py
    

    此时Mypy会抛出类似错误:error: Expression of type "None" cannot be used in "await" expression。

  • 永久启用检查(配置文件方式):
    在项目的pyproject.toml或mypy.ini中添加对应配置:
    若使用pyproject.toml:

    [tool.mypy]
    disallow_awaiting_non_awaitable = true
    

    若使用mypy.ini:

    [mypy]
    disallow_awaiting_non_awaitable = True
    
  • 启用严格模式:
    直接使用--strict参数运行Mypy,该模式会自动包含disallow_awaiting_non_awaitable在内的一系列严格检查规则,命令示例:

    mypy --strict your_script.py
    

你给a()标注-> None后无效果,是因为该检查规则默认处于关闭状态,Mypy不会主动验证await的对象是否实现了Awaitable协议,必须手动开启上述选项才能触发检测。

内容的提问来源于stack exchange,提问作者nicoco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 21:52:48