Exercices Architecture & Patterns Propriétés calculées avec property
🎉

Bravo!

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

@property
def aire(self):
return 3.14159 * self._rayon ** 2

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
Zero degre
t = Temperature(0)
assert t.fahrenheit == 32.0

+ 0 tests cachés

Indices (3 disponibles)

solution.py