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 mitFunctionType.
- types.GeneratorType: type¶
Der Typ von Generator-Iterator-Objekten, die von Generatorfunktionen erzeugt werden.
- types.BuiltinFunctionType: type¶
Der Typ eingebauter Funktionen wie
len()undsys.exit().
- types.BuiltinMethodType: type¶
Der Typ gebundener Methoden eingebauter Typen (zum Beispiel
[].append). Identisch mitBuiltinFunctionType.
- types.CodeType: None¶
Platzhalter für den CPython-
code-Objekttyp. In dieser Implementierung immerNone.
- types.MappingProxyType: None¶
Platzhalter für den schreibgeschützten Mapping-Proxy-Typ, der in CPython von
type.__dict__zurückgegeben wird. In dieser Implementierung immerNone.
- types.SimpleNamespace: None¶
Platzhalter für die Klasse
types.SimpleNamespacevon CPython. In dieser Implementierung immerNone.
- 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.
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 vonbases[0]verwendet, mittypeals Rückfalloption.
Gibt ein 3-Tupel
(metaclass, namespace, kwds)zurück, wobei namespace das Ergebnis des Aufrufs vonmetaclass.__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.