Conversion de méthodes en propriétés
Les propriétés (properties) en Python vous permettent d'accéder à des valeurs calculées comme des attributs. Cela élimine le besoin de parenthèses lors de l'appel d'une méthode, ce qui rend votre code plus propre et plus cohérent.
Actuellement, notre classe Stock
possède une méthode cost()
qui calcule le coût total des actions.
def cost(self):
return self.shares * self.price
Pour obtenir la valeur du coût, nous devons l'appeler avec des parenthèses :
s = Stock('GOOG', 100, 490.10)
print(s.cost()) ## Calls the method
Nous pouvons améliorer cela en convertissant la méthode cost()
en une propriété, ce qui nous permet d'accéder à la valeur du coût sans parenthèses :
s = Stock('GOOG', 100, 490.10)
print(s.cost) ## Accesses the property
Instructions :
-
Ouvrez le fichier stock.py
dans l'éditeur.
-
Remplacez la méthode cost()
par une propriété en utilisant le décorateur @property
:
@property
def cost(self):
return self.shares * self.price
-
Enregistrez le fichier stock.py
.
-
Créez un nouveau fichier nommé test_property.py
dans l'éditeur :
touch /home/labex/project/test_property.py
-
Ajoutez le code suivant au fichier test_property.py
pour créer une instance Stock
et accéder à la propriété 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
-
Exécutez le script de test :
python /home/labex/project/test_property.py
Vous devriez voir une sortie similaire à :
Stock: GOOG
Shares: 100
Price: 490.1
Cost: 49010.0