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.BuiltinFunctionType: type¶
Тип вбудованих функцій, таких як
len()таsys.exit().
- types.BuiltinMethodType: type¶
Тип зв’язаних методів вбудованих типів (наприклад,
[].append). ІдентичнийBuiltinFunctionType.
- types.MappingProxyType: None¶
Заглушка для типу проксі-відображення лише для читання, що повертається
type.__dict__у CPython. ЗавждиNoneу цій реалізації.
- types.SimpleNamespace: None¶
Заглушка для класу
types.SimpleNamespaceCPython. Завжди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".