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".