我想指定一个具有prizes属性的对象。这可能是一个PrizeInfo对象列表,也可能是一个空列表。我正在寻找类似于下面代码的架构,除了这会返回以下错误:"MySchema": { "properties": { "prizes": { "type": "List['PrizeInfo', 'null']", } } }E TypeError: Too many parameters for typing.List; actual 2, expected 1我正在使用这些模板来生成 Python 类。
1 回答
慕容708150
TA贡献1831条经验 获得超4个赞
“空”列表没有注释。任何空列表对象都将满足List[...]
类型提示,无论列表内容必须是什么细节。
因此,如果允许空列表,请使用
List['PrizeInfo']
这允许具有 0 个或更多元素的任何列表,因此该提示中包含空列表。
如果你不是想说的是None
值(null
以JSON)的旁边,允许PrizeInfo
物体,然后使用一个Union[...]
注解用None
:
List[Union['PrizeInfo', None]]
如果您想说允许None
, 或PrizeInfo
对象列表(在 JSON 术语中,anull
或数组),请使用
Union[List['PrizeInfo'], None]
您还可以使用Optional[...]
:
Optional[List['PrizeInfo']]
意思是一样的。但是,我不会在List[...]
提示中使用它;读起来好像您在说元素的类型可能是可选的,从而导致类型规范混乱。
添加回答
举报
0/150
提交
取消