gpt4 book ai didi

python - python中类继承Generic的目的是什么?

转载 作者:行者123 更新时间:2023-12-01 00:24:27 25 4
gpt4 key购买 nike

这两个代码有什么区别?

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 的基类有什么特别之处。谁能向我解释一下吗?

谢谢。

最佳答案

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

第二个版本是一个具有通用 __init__ 方法的非通用类。 T 将根据您传递的 value 推导出不同的内容,但无法像 LoggedVar[int] 那样声明类的专门化>,如果其他方法使用 T,那么这些方法将是单独的泛型方法,不要求 T 与为 __init__ 推导的任何内容相匹配。

关于python - python中类继承Generic的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58708625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com