Python 3.8+typingфункция
typing.get_origin
интроспекция
Возвращает «происхождение» обобщённого типа: get_origin(list[int]) → list (без параметров).
Синтаксис
typing.get_origin(tp)
Для всего, что не является параметризованным дженериком, возвращает None (get_origin(int) → None) — это штатный способ на рантайме понять, дженерик ли перед тобой. Почти всегда идёт в связке с get_args: origin отвечает «какой контейнер», args — «с чем внутри».
Примеры
# Python 3.9+
from typing import get_origin, get_args, Union
print(get_origin(list[int]) is list) # → True
print(get_origin(dict[str, int]) is dict) # → True
print(get_origin(tuple[int, ...]) is tuple) # → True
print(get_origin(Union[int, str]) is Union) # → True
print(get_origin(int)) # → None
print(get_args(list[int])) # → (<class 'int'>,)
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности