Нет аннотации для «пустого» списка. Любой пустой объект списка будет удовлетворять подсказке типа List[...]
, независимо от того, каким должно быть содержимое списка.
Так что, если пустой список разрешен, используйте
List['PrizeInfo']
Это позволяет использовать любой список с 0 или более элементами, поэтому в этот совет включается пустой список.
Если вместо этого вы хотели сказать, что None
значения (null
в JSON) разрешены рядом с PrizeInfo
объектами, то используйте аннотацию Union[...]
с None
:
List[Union['PrizeInfo', None]]
Если вы хотите сказать, что разрешен либо None
, либо список PrizeInfo
объектов (в терминах JSON, null
или массив), тогда используйте
Union[List['PrizeInfo'], None]
Вы также можете использовать Optional[...]
:
Optional[List['PrizeInfo']]
означать то же самое. Однако я бы не стал использовать это в подсказке List[...]
; это читается так, как будто вы говорите, что тип элементов может быть необязательным, что приводит к запутанной спецификации типа.