• Conceitos de P.O.O

Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Classe anônima
  2. Atributos/Campos
  3. Métodos
  4. Usando dictionary, list e tuple

Classes anônimas são classes criadas dinamicamente para uso rápido e pontual dentro de funções, métodos, testes unitários, callbacks e etc. Em python, para declararmos esse tipo de classe, seguimos a sintaxe abaixo:

Sintaxe
nome_classe = type(name, bases, dict)
Onde
name: nome da classe
bases: tupla contendo classe base. () se for classe derivada
dict: dicionario contendo chave-valor que definem os atributos e métodos.
Exemplo 1
#classe anonima simples
classe_anonima=type('classe_anonima', (), {})

#instancia
obj = classe_anonima()

#tipo
print(type(obj))
Saída
<class '__main__.classe_anonima'>

A adição de um ou mais atributos em uma classe anônima é feita no formato chave-valor como mostrado na sintaxe abaixo:

Sintaxe
nome_classe=type('nome_classe', (), {
  'nome_campo1': valor,
  'nome_campoN': valorN
})
Exemplo 2
classe_anonima = type('classe_anonima',(),
{
    'campo1':5,
    'campo2':"string"
})
obj = classe_anonima()
print(type(obj))
print('campo1:',obj.campo1())
Saída
<class '__main__.classe_anonima'>
campo1: 5

A adição de métodos pode ser feito via expressão lambda como mostrado na sintaxe baixo:

Sintaxe
nome_classe=type('nome_classe',(),
{
   'nome_metodo': expressao_lambda
}
Exemplo 2
classe_anonima=type(‘nome_classe’,(), 
{
   'metodo': lambda a,b: a + b
}

obj = classe_anonima()
print(obj.metodo(1,2))
Saída
3

Funções também podem ser utilizadas sendo associadas aos métodos declarados em uma classe anônima.

Sintaxe
nome_classe=type('nome_classe',(),
{
   'nome_metodo': nome_funcao
}
Exemplo 2.1
def funcao(self,a,b):
    return a + b

classe_anonima = type('classe_anonima',(),
{
  'metodo': funcao #atribuição de função
})

obj = classe_anonima()
print(obj.metodo(1,2))
Saída
3

A sintaxe para criação de classes anônimas possibilita que campos sejam iniciados a partir de listas, tuplas e dicionário como mostrado no exemplo abaixo:

Exemplo 2
classe_anonima = type('classe_anonima',(),{
  'campo1': [1,2,3,4,5], #list
  'campo2':(2,3,4), #tuple
  'campo3': {0:'str0',1:'str1',2:'str2'} #dictionary
})

obj = classe_anonima()

print(obj.campo1[0])
print(obj.campo2[1])
print(obj.campo3[2])
Saída
1
3
str2
  1. 10/06/2025 - versão inicial