[pyar] Sobre Mutable / Immutable

gmail michael.ibarra en gmail.com
Mie Sep 1 16:16:49 ART 2010


On Wednesday, September 01, 2010 02:07:04 pm Sebastian Bassi wrote:
> On Wed, Sep 1, 2010 at 3:14 PM, Gustavo Campanelli <gedece en gmail.com> wrote:
> > Interesante caso, parece ser que al invocar el método append se hace
> > referencia al objeto original, en cambio al concatenar no, lo que
> > obliga a retornar el valor para que funcione.
> 
> Es que append es una operación que haces sobre la lista. En cambio
> concatenar devuelve un nuevo objeto (el producto de la concatenación). Si
> queres concatenar sobre la lista directamente tenes que usar extend.
Aqui un ejemplo con el seguimiento:
 
def list_again(foo):
    print id(foo)
    foo.append("bar")
    print id(foo)

def list_again_again(foo):
        print id(foo)
        foo = foo + ["1"]
        print id(foo)
        print foo

if __name__ == "__main__":
 bar = []
 print id(bar)
 list_again(bar)
 print id(bar)
 print bar
 list_again_again(bar)
 print id(bar)




> 
> In [17]: a=['bar']
> 
> In [18]: a.extend(['1'])
> 
> In [19]: a
> Out[19]: ['bar', '1']

-- 
--
Michael Ibarra
51-1-995070639
http://bitclux.blogspot.com/



More information about the pyar mailing list