ao escrever exatamente o codigo na def de exibir o cardapio, os instrutores iteraram encima da lista de item cardapio, porém ao verificar o hasattr(item,'descricao') o bebida passava mas o pratao não, motivo:
@property
def exibir_cardapio(self):
print(f'Cardapio do restaurante {self._nome}\n')
for i, item in enumerate(self._cardapio,start=1):
#aqui não deveria ser 'descricao' mas sim '_descricao', quando chegar um objeto do tipo prato, ele irá verificar falso
if hasattr(item,'descricao'):
#aqui deveria ser acessado do '_' no inicio.
mensagem = f'{i}. Nome:{item._nome} | Preço: R${item._preco} | Descrição: {item.descricao}'
print(mensagem)
else:
mensagem = f'{i}. Nome:{item._nome} | Preço: R${item._preco} | Descrição: {item.tamanho}'
print(mensagem)
não sei porque no video dos instrutores aparece o atributo com "_" mas é acessado pelo iterador.