Saltar al contenido

¿Por qué Python no tiene modificador de acceso? ¿Y cuáles son las alternativas en Python?

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *