Skip to content

Getter Setter

Controlar lectura/escritura de atributos (sobre todo “privados”).

FormaLecturaEscrituraCuándo
Métodosp.get_nombre()p.set_nombre("x")Estilo Java / API explícita
@propertyp.nombrep.nombre = "x"Idiomático en Python
Públicop.nombrep.nombre = "x"Sin validación
class Persona:
def __init__(self, nombre):
self.__nombre = nombre
def get_nombre(self):
return self.__nombre
def set_nombre(self, nuevo):
if len(nuevo) > 0:
self.__nombre = nuevo
else:
raise ValueError("nombre vacío")
p = Persona("Ana")
print(p.get_nombre())
p.set_nombre("Luis")

Misma idea, sintaxis de atributo. Detalle: Property.

class Persona:
def __init__(self, nombre):
self.__nombre = nombre
@property
def nombre(self):
return self.__nombre
@nombre.setter
def nombre(self, nuevo):
if len(nuevo) > 0:
self.__nombre = nuevo
else:
raise ValueError("nombre vacío")
p = Persona("Carlos")
print(p.nombre)
p.nombre = "Andrés"

Docs: property.