types — nazwy typów wbudowanych

Ten moduł definiuje nazwy dla niektórych typów obiektów, które są używane przez standardowy interpreter Pythona, ale nie są udostępniane jako wbudowane (takich jak typ funkcji czy generatorów), wraz z niewielką liczbą funkcji pomocniczych do dynamicznego konstruowania klas.

Jest to port MicroPython podzbioru modułu types z CPythona. Kilka aliasów typów, które nie mają użytecznej reprezentacji w MicroPython (CodeType, MappingProxyType, SimpleNamespace, TracebackType, FrameType, GetSetDescriptorType, MemberDescriptorType), jest udostępnianych jako wypełniacze None, tak aby kod, który jedynie się do nich odwołuje, nadal się importował, ale nie będą one pasować do żadnego rzeczywistego obiektu przez isinstance().

Dostępność: Ten moduł jest częścią micropython-lib. Domyślnie jest dołączany tylko na OpenMV N6 i OpenMV AE3. Na pozostałych kamerach OpenMV Cam można go zainstalować za pomocą mip (lub wbudować w niestandardowe oprogramowanie układowe); zobacz Zarządzanie pakietami.

Aliasy typów

types.FunctionType: type

Typ funkcji zdefiniowanych przez użytkownika oraz obiektów tworzonych przez instrukcje def.

types.LambdaType: type

Typ wyrażeń lambda. Identyczny z FunctionType.

types.GeneratorType: type

Typ obiektów generator-iterator tworzonych przez funkcje generatora.

types.MethodType: type

Typ metod związanych instancji klas zdefiniowanych przez użytkownika.

types.BuiltinFunctionType: type

Typ funkcji wbudowanych, takich jak len() i sys.exit().

types.BuiltinMethodType: type

Typ metod związanych typów wbudowanych (na przykład [].append). Identyczny z BuiltinFunctionType.

types.ModuleType: type

Typ zaimportowanych modułów.

types.CodeType: None

Wypełniacz dla typu obiektu code z CPythona. Zawsze None w tej implementacji.

types.MappingProxyType: None

Wypełniacz dla typu proxy mapowania tylko do odczytu zwracanego przez type.__dict__ w CPythonie. Zawsze None w tej implementacji.

types.SimpleNamespace: None

Wypełniacz dla klasy types.SimpleNamespace z CPythona. Zawsze None w tej implementacji.

types.TracebackType: None

Wypełniacz dla typu obiektów traceback. Zawsze None w tej implementacji.

types.FrameType: None

Wypełniacz dla typu obiektów ramki. Zawsze None w tej implementacji.

types.GetSetDescriptorType: None

Wypełniacz dla typu deskryptorów atrybutów definiowanych przez typy rozszerzeń. Zawsze None w tej implementacji.

types.MemberDescriptorType: None

Wypełniacz dla typu deskryptorów slotów definiowanych przez typy rozszerzeń. Zawsze None w tej implementacji.

Funkcje

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

Tworzy dynamicznie obiekt klasy w sposób odzwierciedlający instrukcję class zgodną z PEP 3115.

  • name to nazwa nowej klasy.

  • bases to krotka klas bazowych.

  • kwds to słownik argumentów nazwanych przekazywanych do metaklasy. Klucz "metaclass", jeśli jest obecny, wybiera metaklasę bezpośrednio.

  • exec_body to opcjonalny obiekt wywoływalny, który zostanie wywołany ze świeżo przygotowaną przestrzenią nazw klasy; powinien on wypełnić ją atrybutami nowej klasy.

Zwraca nowo skonstruowaną klasę.

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

Oblicza odpowiednią metaklasę i przygotowuje przestrzeń nazw dla nowej klasy.

  • name to nazwa klasy, która ma zostać utworzona.

  • bases to krotka klas bazowych.

  • kwds to słownik argumentów nazwanych. Klucz "metaclass", jeśli jest obecny, jest usuwany ze zwracanego kwds i używany jako metaklasa. W przeciwnym razie używana jest metaklasa bases[0], z powrotem do type.

Zwraca 3-elementową krotkę (metaclass, namespace, kwds), gdzie namespace jest wynikiem wywołania metaclass.__prepare__, jeśli jest zdefiniowane, lub w przeciwnym razie pustym słownikiem, a kwds jest kopią danych wejściowych z usuniętym wpisem "metaclass".