types — nevek a beépített típusokhoz

Ez a modul neveket határoz meg néhány olyan objektumtípushoz, amelyeket a szabványos Python értelmező használ, de nincsenek beépített elemként elérhetővé téve (például a függvények vagy generátorok típusához), néhány segédfüggvénnyel együtt a dinamikus osztálylétrehozáshoz.

Ez a CPython types moduljának egy részhalmazát megvalósító MicroPython port. Több olyan típus-alias, amelynek nincs hasznos megjelenítése MicroPythonban (CodeType, MappingProxyType, SimpleNamespace, TracebackType, FrameType, GetSetDescriptorType, MemberDescriptorType), None helyőrzőként van elérhetővé téve, hogy az ezekre csak hivatkozó kód importálható maradjon, de ezek nem fognak illeszkedni egyetlen valós objektumra sem az isinstance() segítségével.

Elérhetőség: Ez a modul a micropython-lib része. Alapértelmezetten csak az OpenMV N6 és az OpenMV AE3 eszközökön van mellékelve. A többi OpenMV Cam eszközön a mip segítségével telepíthető (vagy egyedi firmware-be befagyasztható); lásd: Csomagkezelés.

Típus-aliasok

types.FunctionType: type

A felhasználó által definiált függvények és a def utasításokkal létrehozott objektumok típusa.

types.LambdaType: type

A lambda kifejezések típusa. Megegyezik a FunctionType típussal.

types.GeneratorType: type

A generátorfüggvények által előállított generátor-iterátor objektumok típusa.

types.MethodType: type

A felhasználó által definiált osztálypéldányok kötött metódusainak típusa.

types.BuiltinFunctionType: type

A beépített függvények, például a len() és a sys.exit() típusa.

types.BuiltinMethodType: type

A beépített típusok kötött metódusainak típusa (például [].append). Megegyezik a BuiltinFunctionType típussal.

types.ModuleType: type

Az importált modulok típusa.

types.CodeType: None

Helyőrző a CPython code objektumtípusához. Ebben a megvalósításban mindig None.

types.MappingProxyType: None

Helyőrző a CPythonban a type.__dict__ által visszaadott csak olvasható leképezési proxy típushoz. Ebben a megvalósításban mindig None.

types.SimpleNamespace: None

Helyőrző a CPython types.SimpleNamespace osztályához. Ebben a megvalósításban mindig None.

types.TracebackType: None

Helyőrző a visszakövetési (traceback) objektumok típusához. Ebben a megvalósításban mindig None.

types.FrameType: None

Helyőrző a keret (frame) objektumok típusához. Ebben a megvalósításban mindig None.

types.GetSetDescriptorType: None

Helyőrző a bővítménytípusok által definiált attribútumleírók típusához. Ebben a megvalósításban mindig None.

types.MemberDescriptorType: None

Helyőrző a bővítménytípusok által definiált slot-leírók típusához. Ebben a megvalósításban mindig None.

Függvények

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

Osztályobjektumot hoz létre dinamikusan oly módon, amely a PEP 3115 szabványnak megfelelő class utasítást tükrözi.

  • A name az új osztály neve.

  • A bases az ősosztályok rendezett párja (tuple).

  • A kwds a metaosztálynak átadandó kulcsszavas argumentumok szótára. Egy "metaclass" kulcs, ha jelen van, közvetlenül kiválasztja a metaosztályt.

  • Az exec_body egy opcionális meghívható objektum, amelyet a frissen előkészített osztály-névtérrel hív meg; ennek kell feltöltenie azt az új osztály attribútumaival.

Visszaadja az újonnan létrehozott osztályt.

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

Kiszámítja a megfelelő metaosztályt, és előkészíti a névteret egy új osztályhoz.

  • A name a létrehozandó osztály neve.

  • A bases az ősosztályok rendezett párja (tuple).

  • A kwds a kulcsszavas argumentumok szótára. Egy "metaclass" kulcs, ha jelen van, eltávolításra kerül a visszaadott kwds szótárból, és metaosztályként kerül felhasználásra. Egyébként a bases[0] metaosztálya kerül felhasználásra, amely visszaesik a type típusra.

Egy 3 elemű (metaclass, namespace, kwds) rendezett párral tér vissza, ahol a namespace a metaclass.__prepare__ meghívásának eredménye, ha az definiálva van, egyébként egy üres szótár, a kwds pedig a bemenet egy másolata, amelyből bármely "metaclass" bejegyzés el lett távolítva.