paso por valor y paso por referencia

Hernán Martínez Foffani hernan en orgmf.com.ar
Lun Oct 25 17:12:20 CEST 2004


Batista, Facundo escribio:
> [Hernan Martínez Foffani]
>
> #- Python *siempre* pasa objetos por referencia.  Nunca utiliza
> #- parámetros por valor.
>
> La realidad es un poco distinta. Python, a decir verdad, ¡no pasa los
> objetos!. Los objetos están en memoria, y lo que se hace es
> reasignarles un nombre.

Por supuesto.  Debi haber hecho alguna aclaracion.

El/La que hizo la pregunta original daba a entender que sabía como
se implementaban los objetos "complejos" en python, pero su duda era
con los escalares.  A los neofitos python les podrá sorprender cómo
funcionan las listas o los diccionarios, donde al modificar el dato
de un item no se "modifica" la lista que lo incluye.  Pero curiosamente
a los que llevan algun tiempo programando en otros lenguajes (sobre
todo si son OO) lo que les sorprende es el comportamiento de los
escalares en python.  Esto, hasta que se comprende que en python todos
los tipos son objetos y que solo(*) se diferencian en su mutabilidad.

... resto cortado...
> Hay un excelente artículo de Alex Martelli sobre este asunto, cuando
> lo vuelva a encontrar lo traduzco y se los envío.

¿No te referirás a "How to think like a pythonista."?
Si es ese, lo traduje hace bastante tiempo.
http://www.orgmf.com.ar/condor/objectthink.html
;-)

-H.

(*) Hay mas diferencias (ej. mortalidad, internalidad, etc.), pero no
vienen al caso ahora.




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