O __init__
não é o construtor. O __init__
é o inicializador. Em Python
o construtor é o __new__
.
O __init__
não é o construtor. O __init__
é o inicializador. Em Python
o construtor é o __new__
.
Olá, Henrique, tudo bem?
De fato no Python, o método __new__
é o verdadeiro construtor, pois é ele que é responsável por criar e retornar a nova instância do objeto. Porém na prática, o __new__
é pouco usado, pois o Python chama automaticamente o método __init__
após o __new__
. Isso significa que quando criamos uma nova instância de uma classe, o Python primeiro chama o __new__
para criar a instância e, em seguida, chama o __init__
para inicializá-la.
Por isso, na maioria das vezes, quando falamos em "construtor" em Python, estamos nos referindo ao método __init__
, mesmo que tecnicamente o verdadeiro construtor seja o __new__
. Isso acontece porque é no __init__
que normalmente definimos os atributos que queremos que a nossa instância tenha, e é ele que usamos para controlar como a instância é criada.
No contexto da aula, quando o instrutor se refere ao __init__
como "construtor", ele está se referindo a essa prática comum de usar o __init__
para definir como as instâncias da classe são criadas.
Espero ter esclarecido à dúvida.
Abraços.