Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Opa, duvida rápida aqui

Na definição da classe e dos seus atributos, eu não entendi exatamente o que a função ''__init__" faz e em que casos devo chamar ela, não me ficou claro.

3 respostas
solução!

Olá Weslen, tudo bem com você?

O '__ init__' é um método construtor, ele será chamado assim que a classe for instanciada com a criação de um novo objeto.

A sintaxe do método construtor __init__ será da seguinte forma:

    def __init__(self, < Atributos>):
        < Código_do_método_construtor>
  • self: Será a referência de memória para o objeto criado, o uso nome self é definido por convenção.
  • < Atributos>: Quando um novo objeto criado recebe atributos, devemos informá-los.
  • < Código_do_método_construtor>: Aqui será informado o que será feito no momento da criação do objeto.

É através do método construtor que vamos definir o que o nosso objeto terá assim que for criado, essa definição poderá ser feita através da definição de atributos por exemplo, podendo também ter instruções que serão executadas assim que o objeto for instanciado (criado).

Digamos que queremos criar uma classe que será responsável por criar objetos do tipo pessoas:

class Pessoa:
    def __init__(self, nome):
        self.nome = nome
        print(f"Olá {self.nome}")


obj_pessoa = Pessoa("José")

Resultado

Olá José

No exemplo acima, temos a criação de um objeto do tipo Pessoa, para criarmos esse objeto passamos um atributo inicial nome; esse atributo é salvo utilizando o self como referência; note que não foi necessário chamarmos um método para que fosse apresentado a mensagem de saudação, no momento da criação do objeto o código do método construtor é executado por completo buscando o nome salvo na referência self.nome.

Em resumo, o método construtor __init__ será utilizado sempre que precisamos adicionar uma inicialização para um objeto e que essa inicialização ocorra no momento da instanciação do objeto (criação do objeto).

Para saber um pouco mais sobre o método construtor __init__ recomendo a leitura do seguinte artigo:

O artigo acima está em inglês, caso tenha dificuldades com o idioma, recomendo o uso do tradutor do navegador.

Em caso de dúvidas, encontro-me à disposição.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Muito obrigado pela atenção! Muito didático e esclarecedor, até

Resposta muito boa, me tirou algumas dúvidas também.