types — nomi per i tipi predefiniti

Questo modulo definisce i nomi di alcuni tipi di oggetti che vengono utilizzati dall’interprete Python standard ma non sono esposti come builtin (come il tipo delle funzioni o dei generatori), insieme a un piccolo numero di helper per la costruzione dinamica di classi.

Questo è un port MicroPython di un sottoinsieme del modulo types di CPython. Diversi alias di tipo che non hanno una rappresentazione utile in MicroPython (CodeType, MappingProxyType, SimpleNamespace, TracebackType, FrameType, GetSetDescriptorType, MemberDescriptorType) sono esposti come segnaposto None in modo che il codice che si limita a riferirli continui a importarli, ma non corrisponderanno ad alcun oggetto reale tramite isinstance().

Disponibilità: Questo modulo fa parte di micropython-lib. È incluso per impostazione predefinita solo su OpenMV N6 e OpenMV AE3. Sulle altre OpenMV Cam può essere installato con mip (oppure congelato in un firmware personalizzato); vedi Gestione dei pacchetti.

Alias di tipo

types.FunctionType: type

Il tipo delle funzioni definite dall’utente e degli oggetti creati dalle istruzioni def.

types.LambdaType: type

Il tipo delle espressioni lambda. Identico a FunctionType.

types.GeneratorType: type

Il tipo degli oggetti generatore-iteratore prodotti dalle funzioni generatore.

types.MethodType: type

Il tipo dei metodi associati alle istanze di classi definite dall’utente.

types.BuiltinFunctionType: type

Il tipo delle funzioni predefinite come len() e sys.exit().

types.BuiltinMethodType: type

Il tipo dei metodi associati dei tipi predefiniti (ad esempio [].append). Identico a BuiltinFunctionType.

types.ModuleType: type

Il tipo dei moduli importati.

types.CodeType: None

Segnaposto per il tipo di oggetto code di CPython. In questa implementazione è sempre None.

types.MappingProxyType: None

Segnaposto per il tipo proxy di mapping in sola lettura restituito da type.__dict__ in CPython. In questa implementazione è sempre None.

types.SimpleNamespace: None

Segnaposto per la classe types.SimpleNamespace di CPython. In questa implementazione è sempre None.

types.TracebackType: None

Segnaposto per il tipo degli oggetti traceback. In questa implementazione è sempre None.

types.FrameType: None

Segnaposto per il tipo degli oggetti frame. In questa implementazione è sempre None.

types.GetSetDescriptorType: None

Segnaposto per il tipo dei descrittori di attributo definiti dai tipi di estensione. In questa implementazione è sempre None.

types.MemberDescriptorType: None

Segnaposto per il tipo dei descrittori di slot definiti dai tipi di estensione. In questa implementazione è sempre None.

Funzioni

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

Crea dinamicamente un oggetto classe in modo da rispecchiare l’istruzione class conforme a PEP 3115.

  • name è il nome della nuova classe.

  • bases è una tupla di classi base.

  • kwds è un dict di argomenti keyword da passare alla metaclasse. Una chiave "metaclass", se presente, seleziona direttamente la metaclasse.

  • exec_body è un callable opzionale che verrà invocato con lo spazio dei nomi della classe appena preparato; deve popolarlo con gli attributi della nuova classe.

Restituisce la classe appena costruita.

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

Calcola la metaclasse appropriata e prepara lo spazio dei nomi per una nuova classe.

  • name è il nome della classe che sta per essere creata.

  • bases è una tupla di classi base.

  • kwds è un dict di argomenti keyword. Una chiave "metaclass", se presente, viene rimossa dai kwds restituiti e usata come metaclasse. Altrimenti viene usata la metaclasse di bases[0], con fallback su type.

Restituisce una tupla a 3 elementi (metaclass, namespace, kwds) dove namespace è il risultato della chiamata a metaclass.__prepare__ se definita, oppure un dict vuoto in caso contrario, e kwds è una copia dell’input con qualsiasi voce "metaclass" rimossa.