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:
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.