跳到内容

any-type (ANN401)

源自 flake8-annotations 代码检查工具。

作用

检查函数参数是否使用比 Any 更具体的类型进行注释。

为什么这不好?

Any 是一种特殊的类型,表示不受约束的类型。当一个表达式使用 Any 类型进行注释时,类型检查器将允许对其进行所有操作。

最好明确表达式的类型,只有在真正需要时才使用 Any 作为“逃生舱”。

示例

from typing import Any


def foo(x: Any): ...

建议改为

from typing import Any


def foo(x: int): ...

已知问题

类型别名不受支持,可能会导致误报。例如,以下代码会无意中触发此规则

from typing import Any

MyAny = Any


def foo(x: MyAny): ...

参考