Duda sobre encapsulamiento en Python

Iniciado por Deyual, Diciembre 14, 2014, 11:58:30 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Estimada Comunidad, les tengo una pregunta. Resulta que estoy aprendiendo sobre Python Orientado a Objetos, pero tengo problemas con el encapsulamiento. Conozco claramente los dos guiones bajos para seudo-declarar una variable privada. Pero, he leído por ahí que al anteponer un guión bajo seguido del nombre de la clase antes de la variable solicitada, esta se vuelve publica. ejemplo:

Código: python
class Hola(object):

def __init__(self):
super(Hola, self).__init__()
self.__privado = "privado"

def getPrivado(self):
return self.__privado
def setPrivado(self, valor):
self.__privado = valor

obj = Hola()
print obj.__privado # esto da error
obj._Hola__privado = "Publico" # esto pasa sin ningun problema
print obj.getPrivado()  # acá vemos que el dato fue modificado


Si alguien conoce una forma de encapsular que funcione, su concejo es mas que bienvenido.