1
resposta

[Dúvida] AttributeError: 'Restaurante' object has no attribute 'exibir_cardapio'

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

from modelos.restaurante import Restaurante
from modelos.cardapio.bebida import Bebida
from modelos.cardapio.prato import Prato

restaurante_praca = Restaurante('praça', 'Gourmet')
bebida_suco = Bebida ('Suco de Melancia', 5.0, 'grande')
prato_paozinho = Prato('Paozinho', 2.00, 'O melhor pão da cidade')
restaurante_praca.adicionar_no_cardapio(bebida_suco)
restaurante_praca.adicionar_no_cardapio(prato_paozinho)

def main():
    restaurante_praca.exibir_cardapio()

if __name__ == '__main__':
    main()
1 resposta

Olá Lenon!

Esse erro AttributeError: 'Restaurante' object has no attribute 'exibir_cardapio' geralmente acontece quando o método exibir_cardapio não está definido na classe Restaurante ou há algum problema na importação dessa classe.

Para resolver isso, siga os passos abaixo:

  1. Verifique se o método exibir_cardapio está definido na classe Restaurante:

    No arquivo restaurante.py, certifique-se de que o método exibir_cardapio está definido corretamente.

  2. Corrija a chamada do método exibir_cardapio:

    No seu arquivo app.py, ao chamar o método exibir_cardapio, você deve tratar como uma propriedade, sem os parênteses. Modifique a linha 12 para:

    def main():
        print(restaurante_praca.exibir_cardapio)
    
  3. Revisão geral:

    Certifique-se de que todos os arquivos estão salvos e que não há erros de digitação nos nomes dos métodos ou variáveis.

Depois de fazer essas alterações, execute novamente o seu script app.py, veja se está na pasta correta onde contém o arquivo app.py:

python app.py

Isso deve resolver o problema e exibir o cardápio corretamente.

Espero ter ajudado e bons estudos!