Exercices POO Mixin sérialisable
🎉

Bravo!

Avancé 🧠 Fondamentaux 30 XP 0 personnes ont réussi

Mixin sérialisable

Un mixin tres utile en pratique, c'est celui qui permet de convertir un objet en dictionnaire ou en JSON. Ca sert partout : APIs, sauvegarde, logs, communication entre services.

En Python, chaque objet a un attribut special __dict__ qui contient tous ses attributs d'instance sous forme de dictionnaire. Par exemple :

class Personne:
def __init__(self, nom, age):
self.nom = nom
self.age = age

p = Personne('Alice', 30)
p.__dict__ # donne {'nom': 'Alice', 'age': 30}

Le module json permet de convertir un dictionnaire en chaine JSON :
import json
json.dumps({'nom': 'Alice', 'age': 30}) # donne '{"nom": "Alice", "age": 30}'

Crée un mixin JsonMixin avec :
- to_dict() qui retourne une copie de self.__dict__
- to_json() qui retourne la représentation JSON de to_dict()

Puis crée Personne(JsonMixin) avec __init__(self, nom, age).
Et Employe(Personne) avec __init__(self, nom, age, poste) via super().

Exemple :
Personne('Alice', 30).to_json() # '{"nom": "Alice", "age": 30}'
Employe('Eve', 35, 'Dev').to_dict() # {'nom': 'Eve', 'age': 35, 'poste': 'Dev'}

Tests (2/4)

Personne to_dict
p = Personne('Alice', 30)
assert p.to_dict() == {'nom': 'Alice', 'age': 30}
Personne to_json
import json
p = Personne('Bob', 25)
d = json.loads(p.to_json())
assert d['nom'] == 'Bob' and d['age'] == 25

+ 0 tests cachés

Indices (3 disponibles)

solution.py