¿Como puedo imprimir una lista de objetos (objetos de clase) en Python?

publicado por: Anonymous

he creado una lista de objetos a raíz de una clase (lista de objetos)

while count < numTotalPC:
    ip = DHCPServer.getipDisponibles()[0]
    pc = PC("pc" + str(count), ip, network, gateway)
    switch.anadirPCs(pc)  # <- es la funcion set de la lista

y lo imprimo de la siguiente manera:

print("Lista de ordenadores:")

print(switch.getPCs())  # <- funcion get de la lista PC's 

como podria imprimir los objetos con sus atributos y que no salga de la siguiente manera?

PC.PC object at 0x0000000002A5B948, PC.PC object at 0x0000000002A5B888

solución

Prueba si te sirve de esta forma:

Utilizando lo siguiente en tu clase PC:

def __repr__(self):
    return str(self.__dict__)

Y ésta es la prueba que hice:

class PC():

    def __init__(self, attr1, attr2, attr3):
        self.attr1 = attr1
        self.attr2 = attr2
        self.attr3 = attr3

    def __repr__(self):
        return str(self.__dict__)

arr = []
arr.append(PC('a', 'b', 'c'))
arr.append(PC('d', 'e', 'f'))
arr.append(PC('g', 'h', 'i'))
arr.append(PC('j', 'k', 'l'))
print(arr)

Obteniendo como resultado:

[{‘attr1’: ‘a’, ‘attr2’: ‘b’, ‘attr3’: ‘c’}, {‘attr1’: ‘d’, ‘attr2’: ‘e’, ‘attr3’: ‘f’}, {‘attr1’: ‘g’, ‘attr2’: ‘h’, ‘attr3’: ‘i’}, {‘attr1’: ‘j’, ‘attr2’: ‘k’, ‘attr3’: ‘l’}]

Para más información de __repr__ puedes revisar éste link

No repliqué al 100% tu código pero imagino que estas utilizando algo similar.

Espero te sirva 😉

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *