Referencias a propiedades de clases

Jose Caballero jcaballero.hep en gmail.com
Vie Jul 11 15:44:46 CEST 2008


Hola,

No todo son objetos que se pasan por referencia.
Tal y como lo haces no va a funcionar. Cuando creas la lista para pasarla
como argumento a f(), a.nombre es una copia, y por tanto el objeto a no va a
ver los cambios tras llamar a f().


Jose


El día 11 de julio de 2008 8:57, Beni <camontuyu en yahoo.es> escribió:

> Hola, tengo está cosa rara en mi código ...
>
> class A(object):
>    def __init__(self):
>        self.nombre = "hola"
>
>    def __str__(self):
>        return self.nombre
>
> def f(lista):
>    for e in lista:
>        e[0] += " mundo"
>
> a = A()
>
> print a
>
> f([[a.nombre, None, None],])
>
> print a
>
> Me imprime:
>
> hola
> hola
>
> Cuando yo esperaba:
>
> hola
> hola mundo
>
> ¿Es que al hacer [a.propiedad, ] se hace una copia de la propiedad en la
> lista? ¿No todo es un objeto y se pasan por referencia?
>
> Un saludo.
>
> --
> Benito Rodríguez Arcos
>
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>
_______________________________________________
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