Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Retorno de objeto em lista

O retorno do objeto na lista está retornando o endereço do objeto e não o objeto em si. Onde está o erro? Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Olá Marconi, tudo bem ? espero que sim.

Vamos lá , para você conseguir ver os dados do objeto você precisa dizer ao python , somente a função print() não consegue mostrar as informações de objeto, para isso você precisa implementar o método magico chamado str .

O método str() retorna a versão string do objeto em Python. Se um objeto não tiver um método str(), ele vai retornar somente isso que você viu no seu código, o endereço do objeto.

class  Cliente:
    def __init__(self, codigo, altura, peso):
        self._codigo = codigo
        self._altura = altura
        self._peso = peso

    @property
    def codigo(self):
        return self._codigo

    @property
    def altura(self):
        return self._altura

    @property
    def peso(self):
        return self._peso

    def __str__(self):
        return f'CODIGO: {self._codigo} ALTURA: {self._altura} PESO:{self._peso}'

lista = []

for numero_cliente in range(1,2):

    codigo = int(input("Digite seu codigo: "))
    altura = float(input("Digite sua altura: "))
    peso = float(input("Digite seu peso: "))

    cliente = Cliente(codigo, altura, peso)

    lista.append(cliente)

print(lista[0])
# estamos mostrando somente apenas os dados do primeiro objeto, caso queira mostrar todos , você precisaria criar um for e percorrer a lista de objetos. é bem simples :

for cliente in lista:
    print(cliente)