跳到内容

class-with-mixed-type-vars (RUF053)

有时提供修复。

作用

检查同时具有 PEP 695 并且继承自 typing.Generictyping_extensions.Generic 的类。

为什么这不好?

此类类会在运行时导致错误

from typing import Generic, TypeVar

U = TypeVar("U")

# TypeError: Cannot inherit from Generic[...] multiple times.
class C[T](Generic[U]): ...

示例

from typing import Generic, ParamSpec, TypeVar, TypeVarTuple

U = TypeVar("U")
P = ParamSpec("P")
Ts = TypeVarTuple("Ts")


class C[T](Generic[U, P, *Ts]): ...

建议改为

class C[T, U, **P, *Ts]: ...

修复安全性

由于修复会更改运行时行为,因此始终标记为不安全。 此外,修复范围内的注释将不会被保留。

参考