Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

AttributeError: 'Prato' object has no attribute '_tamanho'

O que pode estar gerando o erro?

    def adicionar_no_cardapio(self, item):
        if isinstance(item, ItemCardapio):
            self._cardapio.append(item)


    @property
    def exibir_cardapio(self):
        print(f'Cardapio do restaurante {self._nome}\n')
        for i,item in enumerate(self._cardapio,start=1):
                if hasattr(item,'descricao'):
                        mensagem_prato = f'{i}. Nome: {item._nome} | Preço: R${item._preco} | Descrição: {item.descricao}'
                        print(mensagem_prato)
                else:
                        mensagem_bebida = f'{i}. Nome: {item._nome} | Preço: R${item._preco} | Tamanho: {item._tamanho}'
                        print(mensagem_bebida)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Boa tarde Grabiel! Tudo bem com você?

O erro está acontecendo devido a verificação se o item informado possui o atributo "_descricao" está ocorrendo de forma errada no método exibir_cardapio da classe Restaurante. No seu código é verificado se o item possui o atributo descricao (sem o sublinhado antes do nome), para o seu código o correto é _descricao (com o sublinhado antes do nome). O código deve ficar da seguinte forma:

if hasattr(item,'_descricao'):

Código completo do método exibir_cardapio com a correção aplicada:

    @property
    def exibir_cardapio(self):
        print(f'Cardapio do restaurante {self._nome}\n')
        for i,item in enumerate(self._cardapio,start=1):
            if hasattr(item,'_descricao'):
                mensagem_prato = f'{i}. Nome: {item._nome} | Preço: R${item._preco} | Descrição: {item._descricao}'
                print(mensagem_prato)
            else:
                mensagem_bebida = f'{i}. Nome: {item._nome} | Preço: R${item._preco} | Tamanho: {item._tamanho}'
                print(mensagem_bebida)

Após realizar a correção, salve o arquivo "restaurante.py" e execute novamente o arquivo "app.py"

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

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