¿Cómo declaras una variable como 'privada' en una clase de Python?

Cómo Declarar Variables Privadas en Python

La programación orientada a objetos (OOP) en Python proporciona una estructura que permite a los programadores trabajar con objetos y clases. Un aspecto importante de la OOP es el encapsulamiento, que encapsula (es decir, hace privado) datos para evitar el acceso directo a ellos desde fuera de la clase. En Python, la encapsulación no se logra con la palabra clave 'private', sino prefijando el nombre de la variable con un doble guión bajo (__).

En Python, las variables privadas sólo se pueden acceder y cambiar dentro de la clase a la que pertenecen. Si intentamos acceder a las variables privadas desde fuera de la clase, Python lanza un AttributeError.

A continuación, se muestra un ejemplo para aclarar esto:

class MiClase:
    def __init__(self):
        self.__variable_privada = "¡Soy privada!"

    def acceder_variable_privada(self):
        return self.__variable_privada

obj = MiClase()
print(obj.acceder_variable_privada())   # Resultado: ¡Soy privada!
print(obj.__variable_privada)   # AttributeError, no se puede acceder directamente

Como puedes ver, se hace una distinción clara entre el acceso directo (que resulta en un error) y el acceso a través de un método definido dentro de la clase.

Es importante mencionar que Python no tiene conceptos de 'privado' y 'público' en sentido estricto como otros lenguajes de programación (Java, C++, etc.). En lugar de eso, los prefijos dobles __ son una convención que altera el nombre de la variable para dificultar su acceso desde fuera de la clase, pero técnicamente no la hacen privada en sentido estricto.

Sin embargo, seguir esta convención y entender cómo funciona puede ser crucial para escribir código Python limpio, mantenible y seguro que esté en consonancia con las mejores prácticas de programación.

¿Te resulta útil?