我有字典注释
class OrderDict(TypedDict):
name: str
price: float
time: str
time:
的值的格式始终类似于 2022-01-01 00:00:00
或 "%Y-%m-%d %H:%M:%S"
。我想要一种在类型注释中表达这一点的方法
类似的东西
class OrderDict(TypedDict):
name: str
price: float
time: Pattern["%Y-%m-%d %H:%M:%S"]
目标是通过 VSCode Intellisense 和 Pylance 进行 IDE 提示。
是否支持正则表达式定义的类型注释?
抛开关于什么应该或不应该被视为类型的哲学讨论,当前类型系统不支持您所要求的内容。
__class_getitem__
的东西来返回动态创建的自身子类。从运行时的角度来看,您可以实现所需的逻辑,而不会出现太大问题。
但是静态类型检查器不会识别这一点(尤其是),因为它不符合 Python 中当前类型的规范。正如其他人指出的那样,从 Python 类型系统的角度来看,字符串(文字)不被视为类型,因此不能作为类型参数传递给泛型类型。
它不是一种类型,因此无法表达,也可能不受支持。
"%Y"
和"%d"
之间没有区别。这些都是字符串。类型注释的存在是为了静态检查类型,而不是字符串格式。
唯一不适合的情况是
Literal
,但它们仅与常量相关。