在学习 Python 3.10 新特性时,其中有个类型别名(TypeAlias), 所举的例子是
StrCache = 'Cache[str]' # a type alias
LOG_PREFIX = 'LOG[DEBUG]' # a module constant
可写成
StrCache: TypeAlias = 'Cache[str]' # a type alias
LOG_PREFIX = 'LOG[DEBUG]' # a module constant
这让 StrCache 更像是一个类型别名,而不是一个看起来明显就是 Cache[str]
的字符串变量(实际上它确实是)。
本文不在 TypeAlias 本身,而是从 Cache[str]
能看出 Python 似乎也能支持像 Java 那样的泛型, 就像 Python 内置支持的 List[str] 或 list[str] 那样。
那么来看 Python 怎么去实现一个只能放入字符串的 Cache[str]
Cache, 而不能放入别的类型。 阅读全文 >>