Python Glossary English

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Сообщить о неточности