O retorno do objeto na lista está retornando o endereço do objeto e não o objeto em si. Onde está o erro?
O retorno do objeto na lista está retornando o endereço do objeto e não o objeto em si. Onde está o erro?
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)