Item Cardapio.py
from abc import ABC, abstractmethod
class Itemcardapio(ABC):  # herda de ABC
    def __init__(self, tipo, nome, preco):
        self._tipo = tipo
        self._nome = nome
        self._preco = preco
    @abstractmethod
    def aplicar_desconto(self):
        pass
Prato.py
from modelos.cardapio.item_cardapio import Itemcardapio
class Prato(Itemcardapio):
    def __init__(self, tipo, nome,preco,descricao):
     super().__init__(tipo, nome ,preco)
     self.descricao = descricao
    def aplicar_desconto(self):
        self._preco -= (self._preco * 0.08)
        self.desconto = self._preco
Bebida.py
from modelos.cardapio.item_cardapio import Itemcardapio
class Bebida(Itemcardapio):
    def __init__(self, tipo,  nome,preco,tamanho):
     super().__init__(tipo, nome ,preco)
     self.tamanho = tamanho
    
    def aplicar_desconto(self):
        self._preco -= (self._preco * 0.08)
        self.desconto = self._preco
Sobremesa.py
from modelos.cardapio.item_cardapio import Itemcardapio
class Sobremesa(Itemcardapio):
    def __init__(self, tipo, nome, preco, tamanho, descricao):
     super().__init__(tipo, nome ,preco)
     self._tamanho = tamanho
     self._descricao = descricao
    def aplicar_desconto(self):
        self._preco -= (self._preco * 0.08)
        self.desconto = self._preco
Restaurante.py
    @property
    def exibir_cardapio(self):
        print(f'\nCardápio do restaurante {self._nome}\n{"-"*50}')
        for i, item in enumerate(self._cardapio, start=1):
            tipo = item._tipo.lower()
            if tipo == "prato":
                print(f'{i}.  {item._nome} - R${item._preco:.2f} | {item.descricao} | Desconto: R${item.desconto:.2f}')
            elif tipo == "bebida":
                print(f'{i}.  {item._nome}  ({item.tamanho}) - R${item._preco:.2f} | Desconto: R${item.desconto:.2f}')
            elif tipo == "sobremesa":
                print(f'{i}.  {item._nome} - R${item._preco}  ({item._tamanho}) | {item._descricao} | Desconto: R${item.desconto:.2f}')
App.py
from modelos.restaurante import Restaurante
from modelos.cardapio.bebida import Bebida
from modelos.cardapio.prato import Prato
from modelos.cardapio.sobremesa import Sobremesa
restaurante_praca = Restaurante('praça', 'Gourmet')
bebida_suco = Bebida("Bebida", "Suquinho", 2.99, "Grande")
prato_paozinho = Prato("Prato", "Pao", 8, "Pao Quente")
pudim = Sobremesa('Sobremesa', 'Pudimzinho', 10, 'Pequeno', 'Quentinho') 
prato_paozinho.aplicar_desconto()
bebida_suco.aplicar_desconto()
pudim.aplicar_desconto()
restaurante_praca.adicionar_items(bebida_suco)
restaurante_praca.adicionar_items(prato_paozinho)
restaurante_praca.adicionar_items(pudim)
def main():
    restaurante_praca.exibir_cardapio
if __name__ == '__main__':
    main()
Saida
 
  
 
             
             Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!
   Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!