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.