Property
Decorador @property
Section titled “Decorador @property”Convierte un método en acceso tipo atributo (p.nombre en vez de p.get_nombre()). Sirve para validar sin romper la API.
| Decorador | Qué hace | Uso |
|---|---|---|
@property | Getter | print(p.nombre) |
@nombre.setter | Setter | p.nombre = "Ana" |
@nombre.deleter | Deleter | del p.nombre |
Solo lectura
Section titled “Solo lectura”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)Con setter
Section titled “Con 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.__nombreComparar con métodos get_/set_: Getters y setters.
Docs: property.