types — nombres para los tipos integrados

Este módulo define nombres para algunos tipos de objetos que utiliza el intérprete estándar de Python pero que no se exponen como integrados (como el tipo de las funciones o de los generadores), junto con un pequeño número de auxiliares para la construcción dinámica de clases.

Esta es una adaptación a MicroPython de un subconjunto del módulo types de CPython. Varios alias de tipos que no tienen una representación útil en MicroPython (CodeType, MappingProxyType, SimpleNamespace, TracebackType, FrameType, GetSetDescriptorType, MemberDescriptorType) se exponen como marcadores de posición None para que el código que solo los referencia siga importándose, pero no coincidirán con ningún objeto real mediante isinstance().

Disponibilidad: Este módulo forma parte de micropython-lib. Se incluye de forma predeterminada únicamente en la OpenMV N6 y la OpenMV AE3. En las demás OpenMV Cams se puede instalar con mip (o congelarse en un firmware personalizado); consulte Gestión de paquetes.

Alias de tipos

types.FunctionType: type

El tipo de las funciones definidas por el usuario y de los objetos creados por sentencias def.

types.LambdaType: type

El tipo de las expresiones lambda. Idéntico a FunctionType.

types.GeneratorType: type

El tipo de los objetos generador-iterador producidos por las funciones generadoras.

types.MethodType: type

El tipo de los métodos ligados de las instancias de clases definidas por el usuario.

types.BuiltinFunctionType: type

El tipo de las funciones integradas como len() y sys.exit().

types.BuiltinMethodType: type

El tipo de los métodos ligados de los tipos integrados (por ejemplo [].append). Idéntico a BuiltinFunctionType.

types.ModuleType: type

El tipo de los módulos importados.

types.CodeType: None

Marcador de posición para el tipo de objeto code de CPython. Siempre es None en esta implementación.

types.MappingProxyType: None

Marcador de posición para el tipo de proxy de mapeo de solo lectura que devuelve type.__dict__ en CPython. Siempre es None en esta implementación.

types.SimpleNamespace: None

Marcador de posición para la clase types.SimpleNamespace de CPython. Siempre es None en esta implementación.

types.TracebackType: None

Marcador de posición para el tipo de los objetos de traza (traceback). Siempre es None en esta implementación.

types.FrameType: None

Marcador de posición para el tipo de los objetos de marco (frame). Siempre es None en esta implementación.

types.GetSetDescriptorType: None

Marcador de posición para el tipo de los descriptores de atributos definidos por los tipos de extensión. Siempre es None en esta implementación.

types.MemberDescriptorType: None

Marcador de posición para el tipo de los descriptores de slot definidos por los tipos de extensión. Siempre es None en esta implementación.

Funciones

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

Crea un objeto de clase dinámicamente de una forma que refleja la sentencia class conforme a PEP 3115.

  • name es el nombre de la nueva clase.

  • bases es una tupla de clases base.

  • kwds es un diccionario de argumentos de palabra clave que se pasan a la metaclase. Una clave "metaclass", si está presente, selecciona la metaclase directamente.

  • exec_body es un invocable opcional que se llamará con el espacio de nombres de la clase recién preparado; debe rellenarlo con los atributos de la nueva clase.

Devuelve la clase recién construida.

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

Calcula la metaclase apropiada y prepara el espacio de nombres para una nueva clase.

  • name es el nombre de la clase que se va a crear.

  • bases es una tupla de clases base.

  • kwds es un diccionario de argumentos de palabra clave. Una clave "metaclass", si está presente, se elimina del kwds devuelto y se usa como metaclase. De lo contrario se usa la metaclase de bases[0], recurriendo a type.

Devuelve una tupla de 3 elementos (metaclass, namespace, kwds) donde namespace es el resultado de llamar a metaclass.__prepare__ si está definido, o un diccionario vacío en caso contrario, y kwds es una copia de la entrada con cualquier entrada "metaclass" eliminada.