Não consegui entender o uso do item no script abaixo
def adicionar_cardapio(self,item):
if isinstance(item,itemCardapio):
self._cardapio.append(item)
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!
Não consegui entender o uso do item no script abaixo
def adicionar_cardapio(self,item):
if isinstance(item,itemCardapio):
self._cardapio.append(item)
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.