Prueba.py
from Persona import Persona
p=Persona('Javi',55)
print(f'Nombre: {p.nombre} : {p.edad}')
Persona.py
class Persona:
def __init__(self, nombre, edad):
self._nombre = nombre
self._edad = edad
@property
def nombre(self):
print("Obteniendo el nombre...")
return self._nombre
@nombre.setter
def nombre(self, nuevo_nombre):
print("Estableciendo el nombre...")
self._nombre = nuevo_nombre
@property
def edad(self):
print("Obteniendo la edad...")
return self._edad
@edad.setter
def edad(self, nueva_edad):
print("Estableciendo la edad...")
if nueva_edad >= 0:
self._edad = nueva_edad
else:
print("La edad no puede ser un número negativo.")
if __name__ == '__main__':
# Crear un objeto de la clase Persona
persona1 = Persona("Juan", 30)
# Acceder al atributo nombre utilizando el método get
print(persona1.nombre) # Resultado: "Obteniendo el nombre..." "Juan"
# Establecer un nuevo valor para el atributo nombre utilizando el método set
persona1.nombre = "Pedro" # Resultado: "Estableciendo el nombre..."
# Intentar establecer una edad negativa
persona1.edad = -5 # Resultado: "Estableciendo la edad..." "La edad no puede ser un número negativo.“
persona1._edad = -4
print(f'Edad: {persona1._edad}') #Edad: -4
Se puede borrar el objeto de forma explicta, para ello utilizamos el método heredado __del__.
class Persona:
def __init__(self, nombre, edad):
self._nombre = nombre
self._edad = edad
@property
def nombre(self):
return self._nombre
@nombre.setter
def nombre(self, nuevo_nombre):
self._nombre = nuevo_nombre
@property
def edad(self):
return self._edad
@edad.setter
def edad(self, nueva_edad):
if nueva_edad >= 0:
self._edad = nueva_edad
else:
print("La edad no puede ser un número negativo.")
def __del__(self):
print(f'Persona: {self.nombre} destruido')
if __name__ == '__main__':
persona1 = Persona("Juan", 30)
print(persona1.nombre) # Resultado: "Obteniendo el nombre..." "Juan"