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