Intermédiaire
🧠 Fondamentaux
20 XP
0 personnes ont réussi
Propriétés calculées avec property
Le decorateur @property permet de definir des attributs calcules. L'avantage, c'est que du point de vue de l'utilisateur, ca ressemble a un simple attribut, mais derriere c'est une méthode qui s'execute.
C'est comme un compteur de vitesse dans une voiture : tu lis la vitesse comme une simple valeur, mais derriere, un mecanisme la calcule en temps reel.
Pour definir un setter (la possibilite de modifier la valeur), tu utilises @nom_propriete.setter :
class Cercle: def __init__(self, rayon): self._rayon = rayon
@property def rayon(self): return self._rayon
@rayon.setter def rayon(self, valeur): if valeur < 0: raise ValueError('Le rayon doit etre positif') self._rayon = valeur
c = Cercle(5) c.rayon donne 5 c.aire donne 78.53975 c.rayon = -1 leve ValueError
Écris une classe Temperature avec un attribut _celsius stocke en interne. Definis : une propriété celsius (lecture et écriture) une propriété fahrenheit en lecture seule, calculée avec la formule : celsius * 9/5 + 32
Exemple : t = Temperature(100) t.celsius donne 100 t.fahrenheit donne 212.0 t.celsius = 0 t.fahrenheit donne 32.0
Tests (4/5)
Lecture celsius
t = Temperature(100)
assert t.celsius == 100
Fahrenheit calcule
t = Temperature(100)
assert t.fahrenheit == 212.0
Modification celsius
t = Temperature(0)
t.celsius = 100
assert t.fahrenheit == 212.0