types — імена для вбудованих типів

Цей модуль визначає імена для деяких типів об’єктів, які використовуються стандартним інтерпретатором Python, але не доступні як вбудовані (наприклад, тип функцій або генераторів), а також невелику кількість допоміжних засобів для динамічного створення класів.

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

Доступність: Цей модуль є частиною micropython-lib. Він включений за замовчуванням лише на OpenMV N6 та OpenMV AE3. На інших OpenMV Cams його можна встановити за допомогою 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.

Повертає 3-кортеж (metaclass, namespace, kwds), де namespace — результат виклику metaclass.__prepare__, якщо визначено, або порожній словник в іншому випадку, а kwds — копія вхідних даних зі видаленим записом "metaclass".