Oi, Carlos! Como vai?
É muito enriquecedor ver como você organizou a classe Sobremesa com herança utilizando ItemCardapio. O uso correto do from modelos.cardapio.item_cardapio para importar a classe base mostra que você está no caminho certo.
Gostei também da forma como você estruturou o método __init__ recebendo os parâmetros nome, preco, tamanho e descricao, e de como utilizou self para acessar o atributo _preco dentro do método aplicar_desconto. Essa organização deixa o código bem claro e alinhado com o conceito de polimorfismo visto na atividade.
Uma dica interessante para o futuro é utilizar o método round() para limitar casas decimais em valores monetários. Veja este exemplo:
valor_com_desconto = round(self._preco * 0.85, 2)
print(valor_com_desconto)
Perceba que, em vez de subtrair a porcentagem diretamente, como no seu def aplicar_desconto original, multiplicamos o valor por 0.85 diretamente, o que representa o mesmo desconto de 15% de forma mais direta. O return do método fica mais limpo, e o round() garante que o valor exibido tenha apenas duas casas decimais, facilitando a exibição de preços no sistema.
Esse tipo de ajuste pequeno faz grande diferença quando o projeto cresce e precisa exibir valores monetários de forma consistente para o usuário.
Você já pensou em como poderia sobrescrever o método __str__ para exibir também o preco e a descricao formatados, tornando a saída da classe Sobremesa ainda mais informativa?
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!