跳到内容

不必要的字面量联合 (PYI030)

源自 flake8-pyi 代码检查器。

有时提供修复。

作用

检查联合中是否存在多个字面类型。

为什么这不好?

Literal["foo", 42]Literal["foo"] | Literal[42] 具有相同的语义,但前者更清晰简洁。

示例

from typing import Literal

field: Literal[1] | Literal[2] | str

建议改为

from typing import Literal

field: Literal[1, 2] | str

修复安全性

如果此修复会删除替换范围内的任何注释,则会被标记为不安全。

一个例子,说明注释在何处被保留,在何处没有被保留

from typing import Literal

field: (
    # deleted comment
    Literal["a", "b"]  # deleted comment
    # deleted comment
    | Literal["c", "d"]  # preserved comment
)

参考