types — namn för inbyggda typer

Denna modul definierar namn för vissa objekttyper som används av den vanliga Python-tolken men som inte exponeras som inbyggda funktioner (såsom typen för funktioner eller generatorer), tillsammans med ett litet antal hjälpfunktioner för dynamisk klasskonstruktion.

Detta är en MicroPython-port av en delmängd av CPythons types-modul. Flera typalias som inte har någon användbar representation i MicroPython (CodeType, MappingProxyType, SimpleNamespace, TracebackType, FrameType, GetSetDescriptorType, MemberDescriptorType) exponeras som None-platshållare så att kod som endast refererar till dem fortsätter att kunna importeras, men de matchar inget verkligt objekt via isinstance().

Tillgänglighet: Denna modul är en del av micropython-lib. Den ingår som standard endast på OpenMV N6 och OpenMV AE3. På övriga OpenMV Cams kan den installeras med mip (eller frysas in i en anpassad fast programvara); se Pakethantering.

Typalias

types.FunctionType: type

Typen för användardefinierade funktioner och för objekt som skapas av def-satser.

types.LambdaType: type

Typen för lambda-uttryck. Identisk med FunctionType.

types.GeneratorType: type

Typen för de generator-iterator-objekt som produceras av generatorfunktioner.

types.MethodType: type

Typen för bundna metoder hos användardefinierade klassinstanser.

types.BuiltinFunctionType: type

Typen för inbyggda funktioner såsom len() och sys.exit().

types.BuiltinMethodType: type

Typen för bundna metoder hos inbyggda typer (till exempel [].append). Identisk med BuiltinFunctionType.

types.ModuleType: type

Typen för importerade moduler.

types.CodeType: None

Platshållare för CPythons code-objekttyp. Alltid None i denna implementation.

types.MappingProxyType: None

Platshållare för den skrivskyddade mappningsproxytypen som returneras av type.__dict__ i CPython. Alltid None i denna implementation.

types.SimpleNamespace: None

Platshållare för CPythons types.SimpleNamespace-klass. Alltid None i denna implementation.

types.TracebackType: None

Platshållare för typen av traceback-objekt. Alltid None i denna implementation.

types.FrameType: None

Platshållare för typen av frame-objekt. Alltid None i denna implementation.

types.GetSetDescriptorType: None

Platshållare för typen av attributdeskriptorer som definieras av tilläggstyper. Alltid None i denna implementation.

types.MemberDescriptorType: None

Platshållare för typen av slot-deskriptorer som definieras av tilläggstyper. Alltid None i denna implementation.

Funktioner

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

Skapa ett klassobjekt dynamiskt på ett sätt som speglar den PEP 3115-kompatibla class-satsen.

  • name är namnet på den nya klassen.

  • bases är en tuppel av basklasser.

  • kwds är en dict med nyckelordsargument som skickas till metaklassen. En "metaclass"-nyckel, om den finns, väljer metaklassen direkt.

  • exec_body är ett valfritt anropbart objekt som anropas med det nyligen förberedda klassnamnrymden; det ska fylla den med den nya klassens attribut.

Returnerar den nykonstruerade klassen.

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

Beräkna lämplig metaklass och förbered namnrymden för en ny klass.

  • name är namnet på den klass som ska skapas.

  • bases är en tuppel av basklasser.

  • kwds är en dict med nyckelordsargument. En "metaclass"-nyckel, om den finns, tas bort från de returnerade kwds och används som metaklass. Annars används metaklassen för bases[0], med återgång till type.

Returnerar en 3-tuppel (metaclass, namespace, kwds) där namespace är resultatet av att anropa metaclass.__prepare__ om det är definierat, eller annars en tom dict, och kwds är en kopia av indata med eventuell "metaclass"-post borttagen.