Exercices POO Property avec validation (setter)
🎉

Bravo!

Intermédiaire 🧠 Fondamentaux 20 XP 0 personnes ont réussi

Property avec validation (setter)

Une property peut aussi avoir un setter, c'est-a-dire une méthode qui controle ce qui se passe quand on assigne une valeur. Ca permet de valider les données avant de les stocker.

La syntaxe est :

@property
def age(self):
return self._age

@age.setter
def age(self, valeur):
if valeur < 0:
raise ValueError('Age negatif')
self._age = valeur

Attention, le nom de la méthode du setter est le meme que celui de la property (ici age). Le decorateur @age.setter dit a Python que c'est le setter de la property age.

Écris une classe CompteBancaire avec une property solde. Le getter renvoie self._solde. Le setter refuse les valeurs negatives en levant ValueError. Le __init__ prend un solde initial (par défaut 0) et utilise la property pour le stocker.

Exemple :
c = CompteBancaire(100)
c.solde renvoie 100
c.solde = 200 fonctionne
c.solde = -50 leve ValueError

Tests (3/4)

Création
assert CompteBancaire(100).solde == 100
Modification valide
c = CompteBancaire(100)
c.solde = 200
assert c.solde == 200
Valeur negative refusee
try:
    CompteBancaire(-50)
    assert False, 'Devrait lever ValueError'
except ValueError:
    assert True

+ 0 tests cachés

Indices (3 disponibles)

solution.py