В настоящее время я пишу код, и мне нужно знать, является ли аннотация данного типа итерируемой (например, ta = typing.List[str]
)
Я ожидал чего-н. вот так для работы:
if isinstance(ta, typing.List):
# do s.th.
Однако ta имеет тип typing._GenericAlias
, который не имеет большого отношения к набору текста.List.
Вместо этого я должен использовать атрибут origin следующим образом:
if getattr(ta, '__origin__', None) == list:
# do s.th.
Это действительно правильный способ сделать это?