clases

Luis Garcia Merino lgmerino en yahoo.com
Lun Nov 10 13:35:59 CET 2008






________________________________
From: Pablo Martin Rodriguez <ustrum en gmail.com>
To: Lista de discusión sobre python en castellano <python-es en aditel.org>
Sent: Monday, November 10, 2008 11:55:30 AM
Subject: [Python-es] clases

Muy buenas. Debo de ser bastante malo en esto, o quizas no me he enterado de
algo importante. El caso es que al usar una clase creada por mi, esta no
tiene el comportamiento esperado. Para simplificarlo todo, he acabado
creando esta clase:

class lista:
    puntos=[]
    def addPunto(self,punto):
        self.puntos+=[punto]

Muy sencilla, tan solo almacena los puntos, es más, lo hace. El problema, es
que, al crear varias instancias de la clase lista, al añadir un punto a
cualquiera de ellas, se añade a todas. Es decir, no puedo tener mas de una
lista, pq aunque las cree, y esten en direcciones de memoria distintas, al
añadir un punto a una de ellas, se añade a todas, por lo que todas son
iguales. ¿alguien sabe que es lo que estoy haciendo mal? muchas gracias
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes



Hola Pablo,
creo que como estás definiendo tu clase, puntos es un atributo de clase. Si quieres que sea un atributo de instancia deberías hacer algo así:

class lista:
    def __init__(self):
        self.puntos=[]
    def addPunto(self,punto):
        self.puntos+=[punto]

Un saludo,

         Luis


      
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es