1
resposta

[Projeto] Mão na massa: 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 f'{super().__str__()} | Tipo: {self.tipo} | Tamanho: {self.tamanho} | Descrição: {self.descricao}'
    
    def aplicar_desconto(self):
        self._preco -= 0.1 * self._preco
        return self._preco
1 resposta

Oi! Tudo bom?

Excelente! Siga praticando com os desafios e sempre compartilhe conosco.

Você soube aplicar herança entre classes de forma eficiente para reutilizar atributos e métodos, aproveitou o método super() para complementar a lógica da classe base e entendeu como o encapsulamento com atributos protegidos é essencial para manter a integridade dos dados.

Como dica adicional, experimente utilizar @property quando precisar criar atributos computados ou controlar o acesso a dados internos. Assim:

@property
def preco_formatado(self):
    return f'R$ {self._preco:.2f}'

Com isso, você poderá exibir valores formatados com mais facilidade, mantendo o controle sobre a apresentação dos dados.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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