Sobes.tech
Junior — Middle

Explique o que é uma metaclasse no contexto da programação orientada a objetos e como ela é utilizada.

sobes.tech IA

Resposta da IA

Meta-classe em Python é uma classe que cria outras classes. Simplificando, uma classe é um objeto, e uma meta-classe é uma "classe para classes". Por padrão, todas as classes são criadas usando a meta-classe type.

As meta-classes permitem controlar o processo de criação de classes: podem modificar atributos, adicionar métodos ou verificar a estrutura da classe durante sua definição.

Exemplo de uso de uma meta-classe para adicionar automaticamente um método à classe:

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

class MyClass(metaclass=AutoMethodMeta):
    pass

obj = MyClass()
print(obj.hello())  # Saída: Olá de MyClass!

Meta-classes são úteis para criar frameworks, ORM e outras ferramentas onde é necessário controlar a estrutura das classes.