[pyar] [Consulta]Programación: constante

Roberto Alsina ralsina en netmanagers.com.ar
Dom Mar 4 19:35:29 ART 2012


On 03/04/2012 07:32 PM, Angel Java Lopez wrote:
> Hola gente!
>
> Ah! Interesante tema....
>
> Hmmm... no me cierra lo de:
>
> "Lo que no existe es la constante "con nombre" porque en python la 
> asignación es en realidad creación de alias para objetos."
>
> Se me ocurren lenguajes donde puedo tener creacion de alias, pero si 
> los objetos apuntados son inmutables (como lo son los enteros y 
> strings en Java, .NET, etc... (no se si son inmutables los string en 
> Python)), entonces bastaria agregar "variables" writeonce (o 
> assign-once) declarando algo como
>

Si, los strings son inmutables en Python.

> const ONE = 1
>
> una "variable"/"alias"/"punterosiquierenverloasi" que se puede asignar 
> una vez y solo una vez, para tener semantica de constantes.

Y de ahí en mas, si hago ONE = 2 es error? En tiempo de compilación o de 
ejecución?

>
> Es asi? O como es como escribe Roberto, un tema derivado de tener 
> alias? O hay algo mas en Python que impide o por lo menos complica 
> tener constantes?
>
> No se si me explique bien... a ver... busco, y encuentro via Google:
> http://software-carpentry.org/4_0/python/alias/
>
> If the data in question is immutable---i.e., if it cannot be modified 
> in place---then aliasing doesn't matter
>
> Ahi muestra aliasing de dos nombres contra el string "isaac". Eso es 
> lo que pasa en Java y en .NET. Sin embargo, ahora que lo leo, me surge 
> una duda: el autor no grafica aliasing para enteros en Python (pone un 
> arreglo donde cada elemento apunta a un numero 1 , "diferente", en vez 
> de que cada elemento apunte al mismo 1). Eso de no tener aliasing de 
> enteros, aparece hasta en implementaciones de Smalltalk, que seria el 
> "papa de todos los aliasing". ;-)
>
Y acá te pregunto: como creás un segundo 1 distinto de este 1 en python? ;-)
No es importante en el caso de los enteros porque son inmutables y 
"fungibles", pero, con objetos en general?


------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120304/c8aa68f2/attachment.html>


More information about the pyar mailing list