Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Mostrar todos los objetos de una clase
#1
Hola.
Estoy practicando con Python la creación de objetos de una clase.
Después de crear distintos objetos de la clase me gustaría poder crear un método que mostrase con un print todos los objetos de la clase que tiene en memoria y que han sido creados.
He pensado que quizás no es necesario por cada objeto creado añadirlo a una lista de objetos y que quizás exista algo internamente en Python sin necesidad de hacerlo a manija.
Gracias de antemano.
Responder
#2
Hola. Eso es exactamente lo que almacena el diccionario __dict__, que es un atributo por defecto de todas las clases.

Código:
class Customer:

    def __init__(self, name, email, phone):
        self.name = name
        self.email = email
        self.phone = phone


customer1 = Customer("Pablo", "pablo@empresa.com", "123-456-789")
print(customer1.__dict__)

Imprime:

Código:
{'name': 'Pablo', 'email': 'pablo@empresa.com', 'phone': '123-456-789'}

Saludos
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#3
Gracias por la información.
Imagina que en el ejemplo has creado tres instancias customer1, customer2 y customer3.
¿ Existe un Customer.__dict__ para recuperar toda la información de customer1, 2 y 3 ?
Responder
#4
No existe tal método. Tendrías que recorrer cada una de las instancias y acceder individualmente al atributo.

Acá tenés algunas soluciones para listar las instancias de una clase: https://stackoverflow.com/questions/3288...of-a-class.
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)