Conversión de Métodos a Propiedades
Las propiedades (properties) en Python le permiten acceder a valores calculados como si fueran atributos. Esto elimina la necesidad de paréntesis al llamar a un método, lo que hace que su código sea más limpio y consistente.
Actualmente, nuestra clase Stock tiene un método cost() que calcula el costo total de las acciones.
def cost(self):
return self.shares * self.price
Para obtener el valor del costo, tenemos que llamarlo con paréntesis:
s = Stock('GOOG', 100, 490.10)
print(s.cost()) ## Calls the method
Podemos mejorar esto convirtiendo el método cost() en una propiedad, lo que nos permite acceder al valor del costo sin paréntesis:
s = Stock('GOOG', 100, 490.10)
print(s.cost) ## Accesses the property
Instrucciones:
-
Abra el archivo stock.py en el editor.
-
Reemplace el método cost() con una propiedad utilizando el decorador @property:
@property
def cost(self):
return self.shares * self.price
-
Guarde el archivo stock.py.
-
Cree un nuevo archivo llamado test_property.py en el editor:
touch /home/labex/project/test_property.py
-
Añada el siguiente código al archivo test_property.py para crear una instancia de Stock y acceder a la propiedad cost:
from stock import Stock
## Create a stock instance
s = Stock('GOOG', 100, 490.10)
## Access cost as a property (no parentheses)
print(f"Stock: {s.name}")
print(f"Shares: {s.shares}")
print(f"Price: {s.price}")
print(f"Cost: {s.cost}") ## Using the property
-
Ejecute el script de prueba:
python /home/labex/project/test_property.py
Debería ver una salida similar a:
Stock: GOOG
Shares: 100
Price: 490.1
Cost: 49010.0