types — Namen für eingebaute Typen

Dieses Modul definiert Namen für einige Objekttypen, die vom Standard-Python-Interpreter verwendet werden, aber nicht als Builtins verfügbar sind (etwa der Typ von Funktionen oder Generatoren), zusammen mit einigen wenigen Hilfsfunktionen für die dynamische Klassenkonstruktion.

Dies ist eine MicroPython-Portierung einer Teilmenge des types-Moduls von CPython. Mehrere Typaliasse, die in MicroPython keine sinnvolle Repräsentation haben (CodeType, MappingProxyType, SimpleNamespace, TracebackType, FrameType, GetSetDescriptorType, MemberDescriptorType), werden als None-Platzhalter bereitgestellt, damit Code, der nur auf sie verweist, weiterhin importierbar bleibt; sie passen jedoch über isinstance() auf kein reales Objekt.

Verfügbarkeit: Dieses Modul ist Teil von micropython-lib. Es ist standardmäßig nur auf der OpenMV N6 und der OpenMV AE3 enthalten. Auf den anderen OpenMV Cams kann es mit mip installiert (oder in eine benutzerdefinierte Firmware eingefroren) werden; siehe Paketverwaltung.

Typaliasse

types.FunctionType: type

Der Typ benutzerdefinierter Funktionen und von Objekten, die durch def-Anweisungen erzeugt werden.

types.LambdaType: type

Der Typ von lambda-Ausdrücken. Identisch mit FunctionType.

types.GeneratorType: type

Der Typ von Generator-Iterator-Objekten, die von Generatorfunktionen erzeugt werden.

types.MethodType: type

Der Typ gebundener Methoden benutzerdefinierter Klasseninstanzen.

types.BuiltinFunctionType: type

Der Typ eingebauter Funktionen wie len() und sys.exit().

types.BuiltinMethodType: type

Der Typ gebundener Methoden eingebauter Typen (zum Beispiel [].append). Identisch mit BuiltinFunctionType.

types.ModuleType: type

Der Typ importierter Module.

types.CodeType: None

Platzhalter für den CPython-code-Objekttyp. In dieser Implementierung immer None.

types.MappingProxyType: None

Platzhalter für den schreibgeschützten Mapping-Proxy-Typ, der in CPython von type.__dict__ zurückgegeben wird. In dieser Implementierung immer None.

types.SimpleNamespace: None

Platzhalter für die Klasse types.SimpleNamespace von CPython. In dieser Implementierung immer None.

types.TracebackType: None

Platzhalter für den Typ von Traceback-Objekten. In dieser Implementierung immer None.

types.FrameType: None

Platzhalter für den Typ von Frame-Objekten. In dieser Implementierung immer None.

types.GetSetDescriptorType: None

Platzhalter für den Typ von Attribut-Deskriptoren, die von Erweiterungstypen definiert werden. In dieser Implementierung immer None.

types.MemberDescriptorType: None

Platzhalter für den Typ von Slot-Deskriptoren, die von Erweiterungstypen definiert werden. In dieser Implementierung immer None.

Funktionen

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

Erzeugt dynamisch ein Klassenobjekt auf eine Weise, die der PEP 3115-konformen class-Anweisung entspricht.

  • name ist der Name der neuen Klasse.

  • bases ist ein Tupel von Basisklassen.

  • kwds ist ein Dict von Schlüsselwortargumenten, die an die Metaklasse übergeben werden. Ein "metaclass"-Schlüssel wählt, sofern vorhanden, die Metaklasse direkt aus.

  • exec_body ist ein optionales Callable, das mit dem frisch vorbereiteten Klassen-Namespace aufgerufen wird; es sollte diesen mit den Attributen der neuen Klasse befüllen.

Gibt die neu konstruierte Klasse zurück.

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

Ermittelt die passende Metaklasse und bereitet den Namespace für eine neue Klasse vor.

  • name ist der Name der zu erzeugenden Klasse.

  • bases ist ein Tupel von Basisklassen.

  • kwds ist ein Dict von Schlüsselwortargumenten. Ein "metaclass"-Schlüssel wird, sofern vorhanden, aus den zurückgegebenen kwds entfernt und als Metaklasse verwendet. Andernfalls wird die Metaklasse von bases[0] verwendet, mit type als Rückfalloption.

Gibt ein 3-Tupel (metaclass, namespace, kwds) zurück, wobei namespace das Ergebnis des Aufrufs von metaclass.__prepare__ ist, falls dieser definiert ist, andernfalls ein leeres Dict, und kwds eine Kopie der Eingabe ist, aus der ein eventueller "metaclass"-Eintrag entfernt wurde.