class 继承 python 中的泛型的目的是什么?

What is the purpose of a class inheriting a Generic in python?

这两个代码有什么区别?

from typing import TypeVar, Generic
from logging import Logger

T = TypeVar('T')

class LoggedVar(Generic[T]):
    def __init__(self, value: T, name: str, logger: Logger) -> None:
        self.name = name
        self.logger = logger
        self.value = value

from typing import TypeVar
from logging import Logger

T = TypeVar('T')

class LoggedVar:
    def __init__(self, value: T, name: str, logger: Logger) -> None:
        self.name = name
        self.logger = logger
        self.value = value

我无法理解将 Generic 作为 LoggedVar 的基础 class 有什么特别之处。谁能给我解释一下?

谢谢。

第一个版本是通用的 class。 LoggedVar[int] 是 class 的特化,它在其构造函数中采用 int 作为 value 参数。如果在 class 中还有 T 的任何其他用途,则 T 的值必须匹配。

第二个版本是一个非泛型 class 和一个泛型 __init__ 方法。 T 将根据您传递的 value 推导出不同的东西,但是无法像 LoggedVar[int] 那样声明 class 的特化,如果使用其他方法 T,这些将是单独的通用方法,不要求 T 匹配为 __init__.

推导的任何内容