在类型提示系统中,
对于多个类型参数是否也适用呢?例如,
Optional[T]
被认为等同于 Union[T, None]
。对于多个类型参数是否也适用呢?例如,
Optional[T,U]
是否可以拆分为 Union[T,U,None]
,还是需要写成 Optional[Union[T,U]]
。
Optional[int, str]
会导致 TypeError。然而,Union[None, int, str]
占用的空间比更易读的Optional[Union[int, str]]
少。 - GeeTransitUsername = typing.TypeVar('Username', str); UserId = typing.TypeVar('UserId', int); UserIdentifier = typing.Union[Username, UserId]; Optional[UserIdentifier]
现在就有了明确的含义。 - Adam Smitht
是类型T
。要么t
为T
,因此存在并且需要更新,要么t
为None
,应将其忽略,要么t
是某个标记类type(Removal)
,需要删除。我的字段看起来像foo: Optional[Union[str, Removal]]
。有没有更清晰的方法来重用这种键入格式?以某种方式得到说foo: Modifiable[str]
? - flakesModifiable = Optional[Union[str, Removal]]
是有效的。 - Adam SmithModifiable[str]
或Modifiable[int]
),那么可以按照 Python 内部定义Union
或Optional
的方式进行定义。请参见 https://gitlab.com/snippets/1836727。 - Adam Smith