En el ámbito de la programación orientada a objetos existen algunos conceptos establecidos que ayudan a gestionar el acceso a las propiedades de los objetos. Uno de estos aspectos centrales son los Getters y Setters. En Python, sin embargo, este concepto no se implementa de la misma manera que en otros lenguajes orientados a objetos. En esta guía aprenderás cómo puedes utilizar los Getters y Setters en Python de manera más efectiva para controlar el acceso a las propiedades de tus clases.
Principales hallazgos
- Los Getters y Setters son métodos que controlan el acceso a las propiedades.
- En Python hay una forma elegante de implementar Getters y Setters con el decorador @property.
- El uso de convenciones de nomenclatura personalizadas ayuda a distinguir claramente entre propiedades internas y públicas.
- La convención de Python para modificadores de acceso difiere de otros lenguajes.
Guía paso a paso
Paso 1: Crear una clase con propiedades
Comienza definiendo una clase simple. Supongamos que deseas crear una clase Persona que tenga un nombre como atributo. En este caso, el nombre se almacena como propiedad privada en el inicializador.

Aquí, _name se declara como una propiedad interna, con el prefijo de guion bajo que indica que se trata de una variable privada.
Paso 2: Añadir un Getter
Para realizar el acceso a la propiedad interna name, añades un método Getter. Este método devuelve el valor actual del nombre.

Paso 3: Añadir un Setter
Ahora añadimos un método Setter para que el nombre de la persona pueda ser cambiado. El Setter te permite establecer nuevos valores para la propiedad interna.

Paso 4: Uso de @property
En Python, tratar con propiedades es aún más elegante cuando utilizas el decorador @property. Esto te permite definir Getters y Setters directamente en la clase, sin necesidad de crear métodos separados.

Paso 5: Manejo de propiedades no públicas
Para asegurarte de que la propiedad interna no sea accesible directamente desde fuera, puedes usar el prefijo __ para encapsular aún más la propiedad. Este enfoque garantiza que el acceso se realice exclusivamente a través de los métodos Getter y Setter.

Con esta implementación se garantiza que no se puede acceder a __name desde fuera.
Resumen – Getters y Setters en Python
En esta guía has aprendido cómo implementar Getters y Setters en Python de manera efectiva para controlar el acceso a las variables de objeto. Has conocido el uso de @property, lo que hace que el código sea más limpio e idiomático. Al encapsular propiedades con un doble guion bajo, puedes asegurarte de que las variables internas estén protegidas contra accesos no autorizados.
Preguntas frecuentes
¿Qué son los Getters y Setters en Python?Los Getters y Setters son métodos que controlan y permiten el acceso a las propiedades de una clase.
¿Cómo implemento Getters y Setters en Python?Puedes implementar Getters y Setters utilizando métodos o el decorador @property.
¿Cuál es la ventaja de @property?El decorador @property permite un acceso elegante e intuitivo a los atributos, sin necesidad de implementar métodos separados.
¿Por qué no deberían ser accesibles directamente las propiedades en Python?El acceso directo puede llevar a comportamientos inesperados y comprometer la integridad de los datos del objeto, por lo que es mejor controlar el acceso.
¿Qué significa marcar una propiedad como "privada"?Una propiedad privada se marca anteponiendo un guion bajo (_) o un doble guion bajo (__) para indicar que no debería ser accesible directamente desde fuera.