如何忽略mypy对带默认值参数的no-untyped-def检查?
关于mypy忽略带默认值参数的
no-untyped-def检查的解决方案 mypy没有提供直接的命令行参数或配置项,来专门忽略带默认值参数的no-untyped-def错误。不过可以通过以下两种变通方式实现近似需求:
- 精准标记单个函数:在带默认值参数的函数定义行末尾添加
# type: ignore[no-untyped-def]注释,手动跳过该函数的no-untyped-def检查。示例:
def my_func(a=1) -> int: # type: ignore[no-untyped-def] return a * 10
这种方式需要逐个标记目标函数,但能精准控制范围,不会影响其他函数的检查。
- 按文件粒度忽略:如果某个文件内的大部分函数都属于“带默认值参数且无需注解”的场景,可以在mypy配置文件(如
mypy.ini或pyproject.toml)中使用per-file-ignores配置,忽略整个文件的no-untyped-def错误。示例(以mypy.ini为例):
[mypy] strict = True per-file-ignores = example.py: no-untyped-def
注意这种方式是对整个文件生效,会忽略该文件内所有函数的no-untyped-def检查,适用场景有限。
需要说明的是,目前mypy没有内置逻辑自动识别“带默认值的参数”并跳过no-untyped-def检查,上述两种方式是当前可行的替代方案。
内容的提问来源于stack exchange,提问作者André Vicente
相关产品推荐
相关产品推荐

