types — nume pentru tipurile încorporate

Acest modul definește nume pentru câteva tipuri de obiecte utilizate de interpretorul Python standard, dar care nu sunt expuse ca elemente încorporate (cum ar fi tipul funcțiilor sau al generatoarelor), împreună cu un număr restrâns de funcții ajutătoare pentru construirea dinamică a claselor.

Acesta este un port MicroPython al unui subset al modulului types din CPython. Câteva alias-uri de tip care nu au o reprezentare utilă în MicroPython (CodeType, MappingProxyType, SimpleNamespace, TracebackType, FrameType, GetSetDescriptorType, MemberDescriptorType) sunt expuse ca substituenți None, astfel încât codul care doar le referențiază continuă să se poată importa, însă acestea nu vor corespunde niciunui obiect real prin isinstance().

Disponibilitate: Acest modul face parte din micropython-lib. Este inclus implicit doar pe OpenMV N6 și OpenMV AE3. Pe celelalte OpenMV Cam poate fi instalat cu mip (sau înghețat într-un firmware personalizat); consultați Gestionarea pachetelor.

Alias-uri de tip

types.FunctionType: type

Tipul funcțiilor definite de utilizator și al obiectelor create prin instrucțiuni def.

types.LambdaType: type

Tipul expresiilor lambda. Identic cu FunctionType.

types.GeneratorType: type

Tipul obiectelor generator-iterator produse de funcțiile generator.

types.MethodType: type

Tipul metodelor legate ale instanțelor de clase definite de utilizator.

types.BuiltinFunctionType: type

Tipul funcțiilor încorporate, cum ar fi len() și sys.exit().

types.BuiltinMethodType: type

Tipul metodelor legate ale tipurilor încorporate (de exemplu [].append). Identic cu BuiltinFunctionType.

types.ModuleType: type

Tipul modulelor importate.

types.CodeType: None

Substituent pentru tipul de obiect code din CPython. Întotdeauna None în această implementare.

types.MappingProxyType: None

Substituent pentru tipul de proxy de mapare doar-citire returnat de type.__dict__ în CPython. Întotdeauna None în această implementare.

types.SimpleNamespace: None

Substituent pentru clasa types.SimpleNamespace din CPython. Întotdeauna None în această implementare.

types.TracebackType: None

Substituent pentru tipul obiectelor traceback. Întotdeauna None în această implementare.

types.FrameType: None

Substituent pentru tipul obiectelor frame. Întotdeauna None în această implementare.

types.GetSetDescriptorType: None

Substituent pentru tipul descriptorilor de atribute definiți de tipurile de extensie. Întotdeauna None în această implementare.

types.MemberDescriptorType: None

Substituent pentru tipul descriptorilor de slot definiți de tipurile de extensie. Întotdeauna None în această implementare.

Funcții

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

Creează dinamic un obiect de clasă într-un mod care reflectă instrucțiunea class conformă cu PEP 3115.

  • name este numele noii clase.

  • bases este un tuplu de clase de bază.

  • kwds este un dicționar de argumente cu cuvinte-cheie care se transmit metaclasei. O cheie "metaclass", dacă este prezentă, selectează direct metaclasa.

  • exec_body este un apelabil opțional care va fi invocat cu spațiul de nume al clasei proaspăt pregătit; acesta ar trebui să îl populeze cu atributele noii clase.

Returnează clasa nou construită.

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

Calculează metaclasa adecvată și pregătește spațiul de nume pentru o nouă clasă.

  • name este numele clasei care urmează să fie creată.

  • bases este un tuplu de clase de bază.

  • kwds este un dicționar de argumente cu cuvinte-cheie. O cheie "metaclass", dacă este prezentă, este eliminată din kwds-ul returnat și folosită ca metaclasă. În caz contrar se folosește metaclasa lui bases[0], revenind la type.

Returnează un tuplu de 3 elemente (metaclass, namespace, kwds), unde namespace este rezultatul apelării metaclass.__prepare__ dacă este definită, sau un dicționar gol în caz contrar, iar kwds este o copie a intrării din care a fost eliminată orice intrare "metaclass".