types — nomes para tipos incorporados

Este módulo define nomes para alguns tipos de objetos utilizados pelo interpretador Python padrão, mas que não estão expostos como builtins (como o tipo de funções ou geradores), juntamente com um pequeno número de auxiliares para a construção dinâmica de classes.

Esta é uma portação MicroPython de um subconjunto do módulo types do CPython. Vários aliases de tipos que não têm representação útil no MicroPython (CodeType, MappingProxyType, SimpleNamespace, TracebackType, FrameType, GetSetDescriptorType, MemberDescriptorType) são expostos como marcadores None para que o código que apenas os referencia continue a ser importado, mas não corresponderão a nenhum objeto real via isinstance().

Disponibilidade: Este módulo faz parte da micropython-lib. É incluído por predefinição apenas na OpenMV N6 e OpenMV AE3. Nas outras OpenMV Cams pode ser instalado com mip (ou congelado num firmware personalizado); ver Gestão de pacotes.

Aliases de tipos

types.FunctionType: type

O tipo de funções definidas pelo utilizador e de objetos criados por instruções def.

types.LambdaType: type

O tipo de expressões lambda. Idêntico a FunctionType.

types.GeneratorType: type

O tipo de objetos iteradores de geradores produzidos por funções geradoras.

types.MethodType: type

O tipo de métodos vinculados de instâncias de classes definidas pelo utilizador.

types.BuiltinFunctionType: type

O tipo de funções incorporadas como len() e sys.exit().

types.BuiltinMethodType: type

O tipo de métodos vinculados de tipos incorporados (por exemplo, [].append). Idêntico a BuiltinFunctionType.

types.ModuleType: type

O tipo de módulos importados.

types.CodeType: None

Marcador para o tipo de objeto code do CPython. Sempre None nesta implementação.

types.MappingProxyType: None

Marcador para o tipo de proxy de mapeamento apenas de leitura devolvido por type.__dict__ no CPython. Sempre None nesta implementação.

types.SimpleNamespace: None

Marcador para a classe types.SimpleNamespace do CPython. Sempre None nesta implementação.

types.TracebackType: None

Marcador para o tipo de objetos de traceback. Sempre None nesta implementação.

types.FrameType: None

Marcador para o tipo de objetos de fotograma. Sempre None nesta implementação.

types.GetSetDescriptorType: None

Marcador para o tipo de descritores de atributos definidos por tipos de extensão. Sempre None nesta implementação.

types.MemberDescriptorType: None

Marcador para o tipo de descritores de slot definidos por tipos de extensão. Sempre None nesta implementação.

Funções

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

Cria um objeto de classe dinamicamente de uma forma que espelha a instrução class em conformidade com a PEP 3115.

  • name é o nome da nova classe.

  • bases é um tuplo de classes base.

  • kwds é um dicionário de argumentos de palavra-chave a passar à metaclasse. Uma chave "metaclass", se presente, seleciona a metaclasse diretamente.

  • exec_body é um callable opcional que será invocado com o espaço de nomes da classe recém-preparada; deve populá-lo com os atributos da nova classe.

Devolve a classe recém-construída.

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

Calcula a metaclasse apropriada e prepara o espaço de nomes para uma nova classe.

  • name é o nome da classe prestes a ser criada.

  • bases é um tuplo de classes base.

  • kwds é um dicionário de argumentos de palavra-chave. Uma chave "metaclass", se presente, é removida do kwds devolvido e utilizada como metaclasse. Caso contrário, é usada a metaclasse de bases[0], com fallback para type.

Devolve um tuplo de 3 elementos (metaclass, namespace, kwds) onde namespace é o resultado de chamar metaclass.__prepare__ se definido, ou um dicionário vazio caso contrário, e kwds é uma cópia da entrada com qualquer entrada "metaclass" removida.