Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

refatorando uma função

from modelos.cardapio.item_cardapio import ItemCardapio

class Sobremesa(ItemCardapio):
    def __init__(self, nome, preco, tipo, tamanho, descricao):
        super().__init__(nome, preco)
        self.tipo = tipo
        self.tamanho = tamanho
        self.descricao = descricao

    def __str__(self):
        return self._nome

    def aplicar_desconto(self):
        self._preco -= (self._preco * 0.15)
1 resposta

Oi, Apollo! Tudo bem?

A sua atividade refatorando uma função ficou bem encaminhada ao criar a classe Sobremesa herdando de ItemCardapio, o que reforça o uso de herança, polimorfismo e reaproveitamento de código na Orientação a Objetos em Python.

A estrutura está clara: você usa super().__init__(nome, preco) para aproveitar os atributos da classe base e define dados próprios da sobremesa, como tipo, tamanho e descricao. Uma dica é manter o padrão de encapsulamento usado na classe ItemCardapio; se nome e preco estão como _nome e _preco, pode fazer sentido usar _tipo, _tamanho e _descricao também, além de avaliar se o método __str__ poderia retornar algo mais descritivo, como nome, tipo e tamanho, para facilitar a visualização do objeto no sistema.

Você pretende criar outras classes, como Bebida ou PratoPrincipal, usando essa mesma estrutura de herança?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!