types — имена встроенных типов

Этот модуль определяет имена для некоторых типов объектов, которые используются стандартным интерпретатором Python, но не доступны как встроенные (например, тип функций или генераторов), вместе с небольшим набором вспомогательных средств для динамического создания классов.

Это порт на MicroPython подмножества модуля types из CPython. Несколько псевдонимов типов, не имеющих полезного представления в MicroPython (CodeType, MappingProxyType, SimpleNamespace, TracebackType, FrameType, GetSetDescriptorType, MemberDescriptorType), представлены как заглушки None, чтобы код, который лишь ссылается на них, продолжал импортироваться, однако они не будут совпадать ни с одним реальным объектом через isinstance().

Доступность: Этот модуль является частью micropython-lib. По умолчанию он включён только в OpenMV N6 и OpenMV AE3. На других OpenMV Cam его можно установить с помощью mip (или вшить в собственную прошивку); см. Управление пакетами.

Псевдонимы типов

types.FunctionType: type

Тип пользовательских функций и объектов, создаваемых инструкциями def.

types.LambdaType: type

Тип выражений lambda. Идентичен FunctionType.

types.GeneratorType: type

Тип объектов-итераторов генераторов, создаваемых функциями-генераторами.

types.MethodType: type

Тип связанных методов экземпляров пользовательских классов.

types.BuiltinFunctionType: type

Тип встроенных функций, таких как len() и sys.exit().

types.BuiltinMethodType: type

Тип связанных методов встроенных типов (например, [].append). Идентичен BuiltinFunctionType.

types.ModuleType: type

Тип импортированных модулей.

types.CodeType: None

Заглушка для типа объектов code из CPython. Всегда None в данной реализации.

types.MappingProxyType: None

Заглушка для типа доступного только для чтения прокси-отображения, возвращаемого type.__dict__ в CPython. Всегда None в данной реализации.

types.SimpleNamespace: None

Заглушка для класса types.SimpleNamespace из CPython. Всегда None в данной реализации.

types.TracebackType: None

Заглушка для типа объектов трассировки. Всегда None в данной реализации.

types.FrameType: None

Заглушка для типа объектов кадра стека. Всегда None в данной реализации.

types.GetSetDescriptorType: None

Заглушка для типа дескрипторов атрибутов, определяемых типами-расширениями. Всегда None в данной реализации.

types.MemberDescriptorType: None

Заглушка для типа дескрипторов слотов, определяемых типами-расширениями. Всегда None в данной реализации.

Функции

types.new_class(name: str, bases: tuple = (), kwds: dict | None = None, exec_body: Callable[[dict], None] | None = None) type

Динамически создаёт объект класса способом, повторяющим инструкцию class, совместимую с PEP 3115.

  • name — имя нового класса.

  • bases — кортеж базовых классов.

  • kwds — словарь именованных аргументов, передаваемых метаклассу. Ключ "metaclass", если он присутствует, напрямую задаёт метакласс.

  • exec_body — необязательный вызываемый объект, который будет вызван с только что подготовленным пространством имён класса; он должен заполнить его атрибутами нового класса.

Возвращает только что созданный класс.

types.prepare_class(name: str, bases: tuple = (), kwds: dict | None = None) tuple[type, dict, dict]

Вычисляет подходящий метакласс и подготавливает пространство имён для нового класса.

  • name — имя создаваемого класса.

  • bases — кортеж базовых классов.

  • kwds — словарь именованных аргументов. Ключ "metaclass", если он присутствует, удаляется из возвращаемого kwds и используется в качестве метакласса. В противном случае используется метакласс bases[0], а при его отсутствии — type.

Возвращает кортеж из трёх элементов (metaclass, namespace, kwds), где namespace — результат вызова metaclass.__prepare__, если он определён, либо пустой словарь в противном случае, а kwds — копия входного словаря с удалённой записью "metaclass" (если она была).