Sobes.tech
Junior — Middle

O que acontece primeiro: a execução do construtor ao criar um objeto ou a chamada do método init?

sobes.tech IA

Resposta da IA

Em Python, ao criar um objeto, primeiro é chamado o método __new__, que é responsável por criar uma instância da classe, e depois é chamado o construtor __init__, que inicializa o objeto criado.

Não existe um método init como um método padrão separado em Python, provavelmente refere-se a __init__.

Resumindo, a ordem é:

  1. __new__ — criação do objeto
  2. __init__ — inicialização do objeto

Exemplo:

class MyClass:
    def __new__(cls, *args, **kwargs):
        print('Criando objeto')
        return super().__new__(cls)

    def __init__(self):
        print('Inicializando objeto')

obj = MyClass()

Saída:

Criando objeto
Inicializando objeto