如何使用Ruff检查指定非None返回类型却未返回值的函数?
解决方法
当然可以通过Ruff实现这个检查需求,Ruff内置了RET101规则(命名为 Missing return statement in function returning non-None),专门用于验证:当函数的返回类型标注为非None时,必须在所有代码路径中返回对应类型的值。
规则效果示例
针对你给出的问题代码:
def add(a: int, b: int) -> int: a + b # 缺少return语句
开启RET101规则后,Ruff会直接触发警告,提示该函数未返回符合标注类型的值。
配置方式
在你的项目配置文件(如pyproject.toml)中,添加或调整Ruff的规则选择:
[tool.ruff] # 同时启用返回类型标注检查(ANN201)和返回语句检查(RET101) select = ["ANN201", "RET101"]
也可以直接启用整个RET规则组,覆盖所有返回语句相关检查:
[tool.ruff] select = ["ANN", "RET"]
额外说明
RET101规则会遍历函数的所有代码分支(包括if/else、try/except等控制流),确保每个分支都存在有效的返回语句,彻底避免因遗漏返回值导致的隐性bug。
内容的提问来源于stack exchange,提问作者Luiggi Mendoza
相关产品推荐
相关产品推荐

