跳到内容

stub中类型化参数的默认值 (PYI011)

源自 flake8-pyi 代码检查器。

修复总是可用的。

作用

检查存根中具有复杂默认值的类型化函数参数。

为什么这不好?

存根 (.pyi) 文件作为静态分析工具的“数据文件”存在,并且不会在运行时评估。虽然简单的默认值对于使用存根的某些工具(例如 IDE)可能有用,但类型检查器会忽略它们。

不要包含和重现复杂的值,而是使用 ... 来指示赋值具有默认值,但该值是“复杂的”或根据当前平台或 Python 版本而变化。就本规则而言,除非默认值是字面量 intfloatcomplexbytesstrboolNone... 或一个简单的容器字面量,否则任何默认值都算作“复杂的”。

示例

def foo(arg: list[int] = list(range(10_000))) -> None: ...

建议改为

def foo(arg: list[int] = ...) -> None: ...

参考