Junior — Middle
Que chamadas de métodos da metaclasse ocorrem durante o processo de definição de uma nova classe?
sobes.tech IA
Resposta da IA
Ao definir uma nova classe em Python, a metaclasse controla o processo de criação da classe. As principais chamadas aos métodos da metaclasse ocorrem na seguinte ordem:
-
__new__— é chamado para criar um novo objeto de classe (ou seja, a própria classe). Aqui, pode-se modificar ou preparar os atributos da classe antes de sua criação. -
__init__— inicializa o objeto de classe criado, geralmente usado para configurações adicionais. -
__call__— é chamado ao criar instâncias da nova classe, mas isso ocorre após a definição da classe.
Exemplo de uma metaclasse simplificada:
class Meta(type):
def __new__(cls, name, bases, dct):
print(f"Criando a classe {name}")
return super().__new__(cls, name, bases, dct)
def __init__(cls, name, bases, dct):
print(f"Inicializando a classe {name}")
super().__init__(name, bases, dct)
class MyClass(metaclass=Meta):
pass
Ao executar, será exibido:
Criando a classe MyClass
Inicializando a classe MyClass
Assim, durante a definição de uma nova classe, os métodos __new__ e __init__ da metaclasse são chamados.