这两种代码有什么区别
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__
推导的任何方法相关问题 更多 >
编程相关推荐