Sei que a aula sobre esse metodo já passou, mas, poderiam me explicar com mais clareza como funciona o metodo init?
Sei que a aula sobre esse metodo já passou, mas, poderiam me explicar com mais clareza como funciona o metodo init?
Oi, Eduardo! Tudo bem?
O __init__
é um método especial em Python, conhecido como o "construtor" da classe, ele é automaticamente chamado quando uma nova instância (ou objeto) da classe é criada, a principal função do __init__
é inicializar os atributos do objeto com valores específicos.
Vamos usar o exemplo da aula para ilustrar:
class Restaurante:
restaurantes = []
def __init__(self, nome, categoria):
self.nome = nome
self.categoria = categoria
self.ativo = False
Restaurante.restaurantes.append(self)
def __str__(self):
return f'{self.nome} | {self.categoria}'
Aqui está o que acontece quando criamos um novo restaurante:
Definição dos Atributos: Quando criamos um novo objeto da classe Restaurante
, o método __init__
é chamado automaticamente, ele recebe os parâmetros nome
e categoria
e os atribui aos atributos do objeto (self.nome
e self.categoria
). Além disso, ele define o atributo ativo
como False
.
Adição à Lista: O método __init__
também adiciona o novo objeto à lista restaurantes
da classe Restaurante
usando Restaurante.restaurantes.append(self)
. Isso significa que toda vez que um novo restaurante é criado, ele é automaticamente adicionado a essa lista.
Vamos ver um exemplo prático:
# Criando dois objetos da classe Restaurante
restaurante_praca = Restaurante('Praça', 'Gourmet')
restaurante_pizza = Restaurante('Pizza Express', 'Italiana')
# Listando os restaurantes
Restaurante.listar_restaurantes()
Quando executamos o código acima, o método __init__
é chamado duas vezes: uma para restaurante_praca
e outra para restaurante_pizza
. Cada restaurante é adicionado à lista restaurantes
, e quando chamamos Restaurante.listar_restaurantes()
, ele imprime:
Praça | Gourmet | False
Pizza Express | Italiana | False
Espero ter ajudado!
Um forte abraço e bons estudos!
Muito obrigado