Python 3.7+typesфункция
types.resolve_bases()
динамическое создание классов
Подставляет настоящие классы вместо баз, у которых есть __mro_entries__, — как это делает оператор class с базой Generic[T] или List[int].
Синтаксис
types.resolve_bases(bases)
Аннотация вроде typing.List[int] — не класс, и type() отказался бы принять её как базу. Оператор class молча вызывает у неё __mro_entries__ и наследует list и Generic. resolve_bases показывает эту подмену: результат и есть реальный __bases__. Нужен тем, кто пишет свои фабрики классов поверх type().
Примеры
import types
import typing
print(types.resolve_bases((typing.List[int],)))
# → (<class 'list'>, <class 'typing.Generic'>)
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности