Skip to content

Property

Convierte un método en acceso tipo atributo (p.nombre en vez de p.get_nombre()). Sirve para validar sin romper la API.

DecoradorQué haceUso
@propertyGetterprint(p.nombre)
@nombre.setterSetterp.nombre = "Ana"
@nombre.deleterDeleterdel p.nombre
class Persona:
def __init__(self, nombre):
self.__nombre = nombre
@property
def nombre(self):
return self.__nombre
p = Persona("Luis")
print(p.nombre) # sin paréntesis
# p.nombre = "x" → AttributeError (sin setter)
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")
@nombre.deleter
def nombre(self):
del self.__nombre

Comparar con métodos get_/set_: Getters y setters.

Docs: property.