types — noms des types intégrés

Ce module définit des noms pour certains types d’objets utilisés par l’interpréteur Python standard mais qui ne sont pas exposés en tant qu’objets intégrés (comme le type des fonctions ou des générateurs), ainsi qu’un petit nombre d’utilitaires pour la construction dynamique de classes.

Il s’agit d’un portage MicroPython d’un sous-ensemble du module types de CPython. Plusieurs alias de types qui n’ont aucune représentation utile dans MicroPython (CodeType, MappingProxyType, SimpleNamespace, TracebackType, FrameType, GetSetDescriptorType, MemberDescriptorType) sont exposés comme des espaces réservés None afin que le code qui ne fait que les référencer continue de s’importer, mais ils ne correspondront à aucun objet réel via isinstance().

Disponibilité : Ce module fait partie de micropython-lib. Il n’est inclus par défaut que sur l’OpenMV N6 et l’OpenMV AE3. Sur les autres OpenMV Cams, il peut être installé avec mip (ou figé dans un micrologiciel personnalisé) ; voir Gestion des paquets.

Alias de types

types.FunctionType: type

Le type des fonctions définies par l’utilisateur et des objets créés par les instructions def.

types.LambdaType: type

Le type des expressions lambda. Identique à FunctionType.

types.GeneratorType: type

Le type des objets générateur-itérateur produits par les fonctions génératrices.

types.MethodType: type

Le type des méthodes liées des instances de classes définies par l’utilisateur.

types.BuiltinFunctionType: type

Le type des fonctions intégrées telles que len() et sys.exit().

types.BuiltinMethodType: type

Le type des méthodes liées des types intégrés (par exemple [].append). Identique à BuiltinFunctionType.

types.ModuleType: type

Le type des modules importés.

types.CodeType: None

Espace réservé pour le type d’objet code de CPython. Toujours None dans cette implémentation.

types.MappingProxyType: None

Espace réservé pour le type de proxy de mappage en lecture seule renvoyé par type.__dict__ dans CPython. Toujours None dans cette implémentation.

types.SimpleNamespace: None

Espace réservé pour la classe types.SimpleNamespace de CPython. Toujours None dans cette implémentation.

types.TracebackType: None

Espace réservé pour le type des objets de traceback. Toujours None dans cette implémentation.

types.FrameType: None

Espace réservé pour le type des objets de trame. Toujours None dans cette implémentation.

types.GetSetDescriptorType: None

Espace réservé pour le type des descripteurs d’attributs définis par les types d’extension. Toujours None dans cette implémentation.

types.MemberDescriptorType: None

Espace réservé pour le type des descripteurs de slot définis par les types d’extension. Toujours None dans cette implémentation.

Fonctions

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

Crée dynamiquement un objet classe d’une manière qui reflète l’instruction class conforme à la PEP 3115.

  • name est le nom de la nouvelle classe.

  • bases est un tuple de classes de base.

  • kwds est un dictionnaire d’arguments nommés à transmettre à la métaclasse. Une clé "metaclass", si elle est présente, sélectionne directement la métaclasse.

  • exec_body est un appelable optionnel qui sera invoqué avec l’espace de noms de classe fraîchement préparé ; il doit le remplir avec les attributs de la nouvelle classe.

Renvoie la classe nouvellement construite.

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

Calcule la métaclasse appropriée et prépare l’espace de noms pour une nouvelle classe.

  • name est le nom de la classe sur le point d’être créée.

  • bases est un tuple de classes de base.

  • kwds est un dictionnaire d’arguments nommés. Une clé "metaclass", si elle est présente, est retirée du kwds renvoyé et utilisée comme métaclasse. Sinon, la métaclasse de bases[0] est utilisée, avec un repli sur type.

Renvoie un triplet (metaclass, namespace, kwds)namespace est le résultat de l’appel à metaclass.__prepare__ si elle est définie, ou un dictionnaire vide sinon, et kwds est une copie de l’entrée d’où toute entrée "metaclass" a été retirée.