我将 mypy 与
disallow-untyped-defs
标志一起使用,因此当我创建一个参数或返回上没有类型注释的方法时,它会抱怨 (error: Function is missing a type annotation [no-untyped-def]
)。
这通常就是我想要的。我想确保所有公共方法都有类型注释,但我不想对内部方法(以一两个前导下划线开头的方法)严格要求。如何让 mypy 忽略内部方法?
示例:
def foo(a, b):
return a + b
def _bar(a, b):
return a + b
def __baz(a, b):
return a + b
mypy --disallow-untyped-defs --check-untyped-defs <module_name>
当前输出:[no-untyped-def] 所有三种方法都缺少类型注释错误。
所需的输出:仅在
foo
方法上出现错误。
我想你正在寻找
# type: ignore[no-untyped-def]
在你的例子中:
def foo(a, b):
return a + b
def _bar(a, b): # type: ignore[no-untyped-def]
return a + b
def __baz(a, b): # type: ignore[no-untyped-def]
return a + b