Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/12/2014, 06:44
SARGE553413
 
Fecha de Ingreso: febrero-2014
Mensajes: 55
Antigüedad: 10 años, 9 meses
Puntos: 3
Duda con retorno por valor o por referencia

Hola a todos.

Tengo una duda respecto a la manera de devolver objetos en python. Por ejemplo, supongamos una clase A con una variable de tipo diccionario 'a', y tenemos un método:
"def getA(self): return self.__a".

Ese método devuelve una referencia a la variable en cuestión, de manera que si luego cambiamos su valor, cambia también el valor de la variable de la clase.

Mi pregunta es cuál es la manera más recomendada/usada para devolver este tipo de variables, si devolver una referencia como antes, o devolver una copia para que no pueda cambiarse desde fuera de la clase. ("return dict(self.__a)").

Quisiera también saber si en caso de tomar la filosofía de devolver por valor (copias), el rendimiento se resiente por todas las copias que vamos a tener que hacer, o si realmente no se va a notar casi nada.

¿Sería algo recomendable devolver referencias tal cual y en la documentación indicar este asunto?

Saludos, gracias.