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

[Dúvida] O uso do item neste script

Não consegui entender o uso do item no script abaixo

def adicionar_cardapio(self,item):
        if isinstance(item,itemCardapio):
            self._cardapio.append(item)
1 resposta

Olá, Cauã. Tudo bem com você?

O parâmetro item representa qualquer objeto que será recebido pelo método adicionar_cardapio(). Ele foi criado dessa forma justamente para evitar a necessidade de vários métodos diferentes, como um para adicionar bebidas, outro para pratos, outro para sobremesas e assim por diante. A ideia é que qualquer objeto que pertença à classe ItemCardapio ou a alguma classe que herde dela possa ser enviado como argumento.

Quando o método recebe um objeto em item, o isinstance(item, ItemCardapio) faz uma verificação para saber se aquele objeto é realmente um item válido do cardápio. Por exemplo, se você passar uma bebida ou um prato que herdam de ItemCardapio, a condição será verdadeira e o objeto será adicionado na lista _cardapio com o append(item).

Um exemplo seria chamar adicionar_cardapio(bebida_suco). Nesse momento, a variável item passa a guardar a referência do objeto bebida_suco. O método verifica a classe desse objeto e, sendo um item de cardápio válido, ele entra na lista do restaurante.

Continue praticando esse conceito de herança e polimorfismo, pois ele é muito utilizado para deixar sistemas mais flexíveis. O fórum está à disposição para ajudar nas próximas dúvidas.