跳到内容

redundant-none-literal (PYI061)

源自 flake8-pyi 代码检查器。

有时提供修复。

此规则不稳定且处于预览状态。使用需要 --preview 标志。

作用

检查冗余的 Literal[None] 注释。

为什么这不好?

虽然 Literal[None] 是有效的类型注释,但它在语义上等同于 None。为了保持一致性和可读性,请优先使用 None 而不是 Literal[None]

示例

from typing import Literal

Literal[None]
Literal[1, 2, 3, "foo", 5, None]

建议改为

from typing import Literal

None
Literal[1, 2, 3, "foo", 5] | None

修复安全性和可用性

除非字面量包含注释,否则此规则的修复被标记为安全。

当应用修复会导致来自 None | None 形式的表达式的 TypeError 时,或者当我们无法导入符号 typing.Optional 且 Python 版本低于 3.9 时,目前没有可用的修复。

参考