我对这个结构有疑问:
class Fruit(Enum):
Apple = "apple"
Bannana = "bananna"
Watermelon = "watermelon"
top_fruits = {
Fruit.Watermelon,
Fruit.Bannana
}
top_fruits_literal = Literal[*top_fruits]
VSCode 将
*top_fruits
突出显示为 "Unpacked arguments cannot be used in type argument lists"
,
但代码运行得很好。
我错过了什么,像这样创建文字是不是一个坏主意?有什么需要改变才能以“正确的方式”进行吗?
查看了 python Literals 和 Enums 但没有找到答案..
它之所以有效,是因为 Python 解释器可以很好地运行该代码。但 Python 解释器不进行类型检查。
但是,类型检查器不是 Python 解释器,并且它们不够智能,无法运行它 - 这就是 VSCode 所说的。
实际上您不需要为列表提供*,
top_frutis_literal = 文字[top_fruits]
这已经足够好了,这就是您在 Visual Studio 中收到该错误的原因。虽然python没有报错