Python “类型”的表达式;列表[int]";无法分配给声明的类型";列表[int|None]”;
我想使用桩类型来保存卡片列表,但可能没有。我在列表中发现以下错误: 无法将“List[int]”类型的表达式分配给声明的类型 “列表[int | None]” 这是我的密码:Python “类型”的表达式;列表[int]";无法分配给声明的类型";列表[int|None]”;,python,type-hinting,Python,Type Hinting,我想使用桩类型来保存卡片列表,但可能没有。我在列表中发现以下错误: 无法将“List[int]”类型的表达式分配给声明的类型 “列表[int | None]” 这是我的密码: Card: type = int Pile: type = List[Optional[Card]] deck: Pile = [i for i in range(1, 13)] * 12 + [0] * 18 对于列表理解或类型,我需要做哪些更改才能同时存储卡片而不存储?对于初学者来说,Card:type=int对我来
Card: type = int
Pile: type = List[Optional[Card]]
deck: Pile = [i for i in range(1, 13)] * 12 + [0] * 18
对于列表理解或类型,我需要做哪些更改才能同时存储卡片而不存储?对于初学者来说,
Card:type=int
对我来说似乎是错误的。如果需要类型别名,不要对其进行类型注释,这没有意义。但是我如何复制它呢?问题在于不变的容器。看见这将适用于更灵活的容器类型<代码>桩=序列[可选[int]];甲板;Pile=[i代表范围(1,13)]**12+[0]*18您从何处获得此错误?验证类型批注不是内置功能。如果您正在使用,例如mypy
,您应该明确地这样说。我对在python中使用类型注释比较陌生,所以我不完全确定哪些是好的做法,哪些是坏的做法。对于这个项目,我被告知要静态地键入所有内容,所以我想我还应该注释类型别名。我在VisualStudio代码中使用Python3.8.5和Pylance,并将typeCheckingMode设置为basic@flakes嗯,容器不太灵活(不可变),但类型允许更灵活的类型推断:)