Sobes.tech
Junior — Middle

Explique o conceito de metaclasse e o seu papel na definição de classes em Python

sobes.tech IA

Resposta da IA

Em Python, uma metaclasse é uma classe que cria outras classes. Simplificando, uma classe é um objeto e uma metaclasse é "uma classe para classes".

Por padrão, todas as classes em Python são criadas usando a metaclasse type. A metaclasse define exatamente como a classe é criada, quais atributos e métodos ela terá.

Papel da metaclasse:

  • Gerenciar o processo de criação da classe (por exemplo, adicionar métodos automaticamente ou verificar atributos).
  • Permitir modificar o comportamento das classes na fase de sua definição.

Exemplo de uso de uma metaclasse:

class Meta(type):
    def __new__(cls, name, bases, dct):
        dct['greet'] = lambda self: f"Olá de {name}!"
        return super().__new__(cls, name, bases, dct)

class MyClass(metaclass=Meta):
    pass

obj = MyClass()
print(obj.greet())  # Vai imprimir: Olá de MyClass!

Neste exemplo, a metaclasse adiciona o método greet a todas as classes que a utilizam.