Los métodos getters y setters son funciones que permiten obtener y establecer el valor de un atributo de una clase, respectivamente.
Se utilizan para agregar lógica adicional al acceso de los atributos, como validación o transformación de datos.
Implementación de Getters y Setters
Los métodos getters y setters se definen utilizando métodos normales dentro de la clase.
class Persona:
def __init__(self, nombre, edad):
self._nombre = nombre
self._edad = edad
def get_nombre(self):
return self._nombre
def set_nombre(self, nombre):
if isinstance(nombre, str):
self._nombre = nombre
else:
raise ValueError("El nombre debe ser una cadena de texto")
def get_edad(self):
return self._edad
def set_edad(self, edad):
if isinstance(edad, int) and edad > 0:
self._edad = edad
else:
raise ValueError("La edad debe ser un número entero positivo")
Por lo demás, no tienen nada más en especial. Son simplemente métodos que tienen la convención de llamarse get_
y set_
(con el nombre de la propiedad detrás) y cuya función es obtener o establecer el valor de un atributo.
Uso de Getters y Setters
Para utilizar estos métodos, simplemente tenemos que llamar explícitamente a los métodos get_
y set_
.
persona = Persona("Luis", 25)
print(persona.get_nombre()) # Salida: Luis
persona.set_nombre("Carlos")
print(persona.get_nombre()) # Salida: Carlos
print(persona.get_edad()) # Salida: 25
persona.set_edad(30)
print(persona.get_edad()) # Salida: 30