我正在开发一个项目,并尝试解压一个列表,以便我可以将其作为 Pydantic 库的文字。但代码抛出了这个错误,
Python version 3.10 does not support starred expressions in subscriptions
。
这是导致错误的代码,
from pydantic import BaseModel
from typing import Literal
members = ["Member1", "Member2"]
options = ["FINISH"] + members
class routeResponse(BaseModel):
next: Literal[*options] # <- this line is throwing error
如果我删除文字,代码就可以正常工作,即
[*options]
工作得很好。所以,一起使用 *
和 Literal
的问题。有谁知道可能导致错误的原因是什么?
我目前使用的是python版本3.10.9。
好吧,经过几次尝试并检查不同的选项后,我得到了正确的答案。
感谢 @kuza 提到 Literal 接受类型或文字的元组here。
阅读此回复后,我尝试了
Literal[(*options,)]
,现在它按预期工作。这是完整的代码,以防万一需要。
from pydantic import BaseModel
from typing import Literal
members = ["Member1", "Member2"]
options = ["FINISH"] + members
class routeResponse(BaseModel):
next: Literal[(*options,)]