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