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

Exercicio restaurante

class Restaurante:
    def __init__(self, nome, categoria, ativo=False, capacidade, nota_avaliacao):
        self.nome = nome
        self.categoria = categoria
        self.ativo = ativo
        self.capacidade = capacidade
        self.nota_avaliacao = nota_avaliacao

# Instanciando um restaurante e atribuindo valores aos seus atributos
restaurante_exemplo = Restaurante(nome='Comida Boa', categoria='Gourmet', ativo=True, capacidade=50, nota_avaliacao=4.5)

Esse código proposto na aula da erro no "ativo=False". Alguém consegue corrigir e me dizer o porque do erro?

2 respostas
solução!

Olá, Luiz! Tudo joia?

O erro que você está encontrando é porque os parâmetros com valores padrão (como ativo=False no seu caso) devem sempre ser colocados após os parâmetros que não têm valores padrão. Ou seja, eles devem ser os últimos na lista de parâmetros.

Aqui está o código corrigido:

class Restaurante:
    def __init__(self, nome, categoria, capacidade, nota_avaliacao, ativo=False):
        self.nome = nome
        self.categoria = categoria
        self.ativo = ativo
        self.capacidade = capacidade
        self.nota_avaliacao = nota_avaliacao

# Instanciando um restaurante e atribuindo valores aos seus atributos
restaurante_exemplo = Restaurante(nome='Comida Boa', categoria='Gourmet', capacidade=50, nota_avaliacao=4.5, ativo=True)

Neste caso, ativo foi movido para o final da lista de parâmetros no método __init__. Agora, quando você cria uma instância de Restaurante, ativo também deve ser o último parâmetro que você passa (a menos que você esteja passando os parâmetros por nome, como no exemplo).

Espero ter ajudado e bons estudos!

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

Perfeito! Muito Obrigado