Solución:
De Wikipedia:
[Python] tiene soporte limitado para variables privadas usando la manipulación de nombres. Consulte la sección “Clases” del tutorial para obtener más detalles. Sin embargo, muchos usuarios de Python no sienten la necesidad de variables privadas. El lema “Aquí todos somos adultos que consienten” se utiliza para describir esta actitud. Algunos consideran que la ocultación de información no es pitónica, ya que sugiere que la clase en cuestión contiene elementos internos poco estéticos o mal planificados. Sin embargo, el argumento más fuerte para la alteración de nombres es la prevención de roturas impredecibles de programas: la introducción de una nueva variable pública en una superclase puede romper subclases si no utilizan variables “privadas”.
Del tutorial:
Como ocurre con los módulos, las clases en Python no ponen una barrera absoluta entre la definición y el usuario, sino que se basan en la cortesía del usuario para no “interrumpir la definición”.
¡El mismo sentimiento se describe en el párrafo Todos somos adultos que consienten en The Hitchhiker’s Guide to Python!
La alternativa es nombrar su “privado” (no son realmente privados en Python) con identificadores que faciliten la identificación de que esos miembros no deben usarse desde afuera.
Por ejemplo:
class RedmineWriter:
__server = None
__connected = False
...
...
...
Sin embargo, si el usuario de la clase realmente quiere cambiar estos atributos, no tendrá ningún problema. Es su responsabilidad no hacer eso.
Mire: http://docs.python.org/2/tutorial/classes.html#tut-private
¿Qué diferencias hacen los modificadores de acceso en c # y java? Si tengo el código fuente, simplemente podría cambiar el acceso de privado a público si quiero acceder a una variable miembro. Es solo cuando tengo una biblioteca compilada que los modificadores de acceso no se pueden cambiar, y tal vez brinden alguna funcionalidad útil allí para restringir la API. Sin embargo, Python no se puede compilar y, por lo tanto, compartir bibliotecas requiere compartir el código fuente. Por lo tanto, hasta que alguien cree un compilador de Python, los modificadores de acceso no lograrán realmente nada.