1
resposta

[Dúvida] @abstractmethod

Olá, Entendi que o @abstractmethod diz no caso do restaurante que todas as classes filhas de ItemCardapio precisará dele, correto? Entretanto meu código funcionou normalmente na etapa que mostra no vídeo em que ao implementa-lo, quebra. O que pode ter acontecido?

1 resposta

Olá! Tudo bem?

O @abstractmethod é usado para garantir que qualquer classe que herde de uma classe base abstrata implemente métodos específicos. No seu caso, se a classe ItemCardapio possui um método abstrato aplicar_desconto, todas as subclasses (como Bebida e Prato) devem implementar este método para que possam ser instanciadas.

Se o seu código funcionou sem erros, mesmo sem implementar o método aplicar_desconto nas subclasses, é possível que o @abstractmethod não tenha sido aplicado corretamente. Aqui estão algumas possibilidades do que pode ter acontecido:

  1. Esquecimento de Herança da ABC: Certifique-se de que a classe ItemCardapio está herdando de ABC (ou seja, class ItemCardapio(ABC):). Sem isso, o @abstractmethod não funcionará como esperado.

  2. Falta do Decorador: Verifique se o decorador @abstractmethod foi corretamente colocado acima do método aplicar_desconto na classe ItemCardapio.

Mas para te apresentar uma solução mais consolidada, precisarei que compartilhe o seu projeto para que eu teste.

No mais, espero ter ajudado e bons estudos!

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