[pyar] Pregunta de clases

Ramiro Morales cramm0 en gmail.com
Mar Mar 26 14:55:20 ART 2013


On Mar 26, 2013 2:30 PM, "Sebastian Scheib" <stackpointerex en gmail.com>
wrote:
>
> Buenas, estoy probando algunas cosas con Python (volviendo a
acostumbrarme a Python que no lo tocaba hace tiempo) y me pasa algo.
>
> Tengo esto:
>
> class aaa:
>     texto=[]
>     def __init__(self,aaa):
>         if aaa=="1":
>             self.texto.append("hola")
>         if aaa=="2":
>             self.texto.append("chau")
>
> pepe=aaa("1")
> gomez=aaa("2")
> print pepe.texto
> print "--------"
> print gomez.texto
>
> La salida de esto me da:
>
> ['hola', 'chau']
> --------
> ['hola', 'chau']
>
> No debería la salida de pepe darme hola y la de gomez chau? Cual sería la
forma correcta de que esto suceda?

texto es un atributo de la clase aaa, no es un atributo de las instancias
de aaa. Por esa razón es compartido por todas las instancias.

Si queres que sean atributos de instancia tenes que no declararlo a nivel
clase e inicializalo en un metodo, usualmente el inicializador __init__
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130326/53068885/attachment.html>


More information about the pyar mailing list