types — namen voor ingebouwde typen

Deze module definieert namen voor enkele objecttypen die door de standaard Python-interpreter worden gebruikt maar niet als builtins beschikbaar zijn (zoals het type van functies of generatoren), samen met een klein aantal hulpfuncties voor dynamische klasseconstructie.

Dit is een MicroPython-port van een subset van de types-module van CPython. Verschillende type-aliassen die geen zinvolle representatie hebben in MicroPython (CodeType, MappingProxyType, SimpleNamespace, TracebackType, FrameType, GetSetDescriptorType, MemberDescriptorType) worden als None-plaatshouders blootgesteld, zodat code die er alleen naar verwijst importeerbaar blijft, maar ze komen via isinstance() met geen enkel echt object overeen.

Beschikbaarheid: Deze module maakt deel uit van micropython-lib. Ze is alleen standaard meegeleverd op de OpenMV N6 en OpenMV AE3. Op de andere OpenMV Cams kan ze worden geïnstalleerd met mip (of worden ingevroren in een aangepaste firmware); zie Pakketbeheer.

Type-aliassen

types.FunctionType: type

Het type van door de gebruiker gedefinieerde functies en van objecten die met def-statements zijn gemaakt.

types.LambdaType: type

Het type van lambda-expressies. Identiek aan FunctionType.

types.GeneratorType: type

Het type van generator-iteratorobjecten die door generatorfuncties worden geproduceerd.

types.MethodType: type

Het type van gebonden methoden van door de gebruiker gedefinieerde klasse-instanties.

types.BuiltinFunctionType: type

Het type van ingebouwde functies zoals len() en sys.exit().

types.BuiltinMethodType: type

Het type van gebonden methoden van ingebouwde typen (bijvoorbeeld [].append). Identiek aan BuiltinFunctionType.

types.ModuleType: type

Het type van geïmporteerde modules.

types.CodeType: None

Plaatshouder voor het CPython code-objecttype. Altijd None in deze implementatie.

types.MappingProxyType: None

Plaatshouder voor het alleen-lezen mapping-proxytype dat in CPython door type.__dict__ wordt teruggegeven. Altijd None in deze implementatie.

types.SimpleNamespace: None

Plaatshouder voor de CPython types.SimpleNamespace-klasse. Altijd None in deze implementatie.

types.TracebackType: None

Plaatshouder voor het type van traceback-objecten. Altijd None in deze implementatie.

types.FrameType: None

Plaatshouder voor het type van frame-objecten. Altijd None in deze implementatie.

types.GetSetDescriptorType: None

Plaatshouder voor het type van attribuutdescriptors gedefinieerd door extensietypen. Altijd None in deze implementatie.

types.MemberDescriptorType: None

Plaatshouder voor het type van slot-descriptors gedefinieerd door extensietypen. Altijd None in deze implementatie.

Functies

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

Maak dynamisch een klasse-object aan op een manier die het PEP 3115-conforme class-statement weerspiegelt.

  • name is de naam van de nieuwe klasse.

  • bases is een tuple van basisklassen.

  • kwds is een dict met sleutelwoordargumenten om aan de metaklasse door te geven. Een "metaclass"-sleutel, indien aanwezig, selecteert de metaklasse rechtstreeks.

  • exec_body is een optionele callable die wordt aangeroepen met de vers voorbereide klassenaamruimte; deze moet de naamruimte vullen met de attributen van de nieuwe klasse.

Geeft de nieuw geconstrueerde klasse terug.

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

Bereken de juiste metaklasse en bereid de naamruimte voor een nieuwe klasse voor.

  • name is de naam van de klasse die op het punt staat te worden aangemaakt.

  • bases is een tuple van basisklassen.

  • kwds is een dict met sleutelwoordargumenten. Een "metaclass"-sleutel, indien aanwezig, wordt uit de teruggegeven kwds verwijderd en als metaklasse gebruikt. Anders wordt de metaklasse van bases[0] gebruikt, met als terugval type.

Geeft een 3-tuple (metaclass, namespace, kwds) terug, waarbij namespace het resultaat is van het aanroepen van metaclass.__prepare__ indien gedefinieerd, of anders een lege dict, en kwds een kopie is van de invoer met een eventuele "metaclass"-vermelding verwijderd.