如何在 python 中的 2 种类型别名之间进行转换?
How to convert between 2 type aliases in python?
我正尝试在 python 中执行以下操作:
import typing
TypeA = str
TypeB = typing.Union[typing.List[str], typing.List[int], int, str]
TypeC = typing.Dict[str, TypeB]
def funcA(arg1: TypeC):
var1: typing.List[TypeA] = arg1["random_key"] # static typechecker i.e. pyright is not allowing this
如何使类型检查器(即 pyright)允许此分配?
您可以随时使用 typing.cast
功能说“相信我,我知道我在做什么。”
var1: typing.List[TypeA] = cast(typing.List[TypeA], .....)
顺便说一下,如果您使用 ≥3.9,您可以只使用 list
而不是 typing.List
。
我正尝试在 python 中执行以下操作:
import typing
TypeA = str
TypeB = typing.Union[typing.List[str], typing.List[int], int, str]
TypeC = typing.Dict[str, TypeB]
def funcA(arg1: TypeC):
var1: typing.List[TypeA] = arg1["random_key"] # static typechecker i.e. pyright is not allowing this
如何使类型检查器(即 pyright)允许此分配?
您可以随时使用 typing.cast
功能说“相信我,我知道我在做什么。”
var1: typing.List[TypeA] = cast(typing.List[TypeA], .....)
顺便说一下,如果您使用 ≥3.9,您可以只使用 list
而不是 typing.List
。