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

如何在mypy严格模式下仅允许无返回值函数省略返回类型注解?

解决方案

方法1:给无返回值函数显式标注返回类型-> None

这是最规范且直接的方式,mypy会识别这类无返回值函数的标注,不再抛出no-untyped-def错误;而有返回值却未标注的函数仍会被正常检测。

示例代码:

def print_func(hi: str) -> None:  # mypy 不会报错
    print(hi)

def print_func2(hi: str):  # mypy 会抛出 no-untyped-def 错误
    print(hi)
    return hi

方法2:用单行忽略注释精准跳过指定函数

如果不想给函数加返回类型标注,可以在无返回值函数定义行末尾添加# type: ignore[no-untyped-def]注释,让mypy跳过该函数的no-untyped-def检测,同时保留对其他有返回值未标注函数的检测逻辑。

示例代码:

def print_func(hi: str):  # type: ignore[no-untyped-def]
    print(hi)

def print_func2(hi: str):  # mypy 会抛出 no-untyped-def 错误
    print(hi)
    return hi

注意事项

  • 不要全局关闭no-untyped-def检查,否则所有未标注返回类型的函数都会被忽略,不符合你只想放过无返回值函数的需求。
  • 显式标注-> None更符合PEP484类型规范,既能满足检查要求,也能提升代码可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 12:45:00