Foros del Web » Programando para Internet » Python »

Constantes y parametros por referencia en Python

Estas en el tema de Constantes y parametros por referencia en Python en el foro de Python en Foros del Web. Hola, alguien podría decirme como se declara una constante en Python, los argumentos por referencia y si el lenguaje soporta la definición de macros. Gracias ...
  #1 (permalink)  
Antiguo 08/08/2011, 18:53
Avatar de Gobi  
Fecha de Ingreso: enero-2010
Mensajes: 7
Antigüedad: 14 años, 10 meses
Puntos: 0
Pregunta Constantes y parametros por referencia en Python

Hola, alguien podría decirme como se declara una constante en Python, los argumentos por referencia y si el lenguaje soporta la definición de macros.

Gracias de antemano.

Última edición por razpeitia; 08/08/2011 a las 22:07 Razón: Formato del mensaje.
  #2 (permalink)  
Antiguo 08/08/2011, 22:07
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Constantes y parametros por referencia en Python

Cita:
Iniciado por Gobi Ver Mensaje
Hola
Hola

Cita:
Iniciado por Gobi Ver Mensaje
alguien podría decirme como se declara una constante en Python,
Claro puedes hacer, de hecho si el objeto es inmutable no cambiara durante la ejecución del programa, sin embargo aquí tienes una receta para hacer constantes en python.

Cita:
Iniciado por Gobi Ver Mensaje
los argumentos por referencia
Python no pasa los argumentos por valor o por referencia, si no que hace es un "paso por objeto" o "paso por compartir"

Vamos a ver un ejemplo:
Código Python:
Ver original
  1. #Los enteros son inmutables
  2. x = 10
  3. print "Antes de llamar a la funcion", x
  4. def funcion_1(x):
  5.     x = 5
  6. funcion_1(x)
  7. print "Despues de llamar a la funcion", x
  8. #Esto no cambia el valor de x
  9.  
  10.  
  11. #En cambio las listas son mutables
  12. y = [1, 3, 5]
  13. def funcion_2(y):
  14.     y.append(7)
  15. print "Antes de llamar a la funcion", y
  16. funcion_2(y)
  17. print "Despues de llamar a la funcion", y

Si no te gusta este modelo puedes pensar de la siguiente manera:
En Python todo es un objetos, esto significa que ocupa un espacio en memoria y que tiene una dirección de memoria, los parámetros son siempre punteros a esos objetos. Pero los objetos solamente los puedes cambiar a través de sus propios métodos (Que muchas veces esos métodos son sobre carga de operadores).

Para ver esto mejor necesitamos un ejemplo:
Código Python:
Ver original
  1. #Las listas son mutables, pero solo bajo sus propios métodos.
  2. l = [3, 5, 7]
  3. def funcion(l):
  4.     l = [2, 4, 6]
  5. print "Antes de la funcion", l
  6. f(l)
  7. print "Despues de la funcion", l


Cita:
Iniciado por Gobi Ver Mensaje
y si el lenguaje soporta la definición de macros.
No, pero creo que lo quieres es meta programación en este caso, incluso en C/C++ los macros son ineficientes.

Cita:
Iniciado por Gobi Ver Mensaje
Gracias de antemano.
De nada

Etiquetas: parametros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:16.