Exercices Fonctions & Modules Context manager maison
🎉

Bravo!

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

Context manager maison

Les context managers (le mot-clé with) garantissent qu'une ressource est correctement libérée, même si une erreur survient. Tu les utilises déjà avec open() pour les fichiers. Savoir en créer un toi-même, c'est un vrai saut de niveau en Python.

Ta classe doit définir __enter__() (appelée au début du with, retourne l'objet) et __exit__() (appelée à la fin, même en cas d'erreur). time.time() donne l'heure en secondes.

Écris une classe Timer utilisable comme context manager. L'attribut elapsed doit contenir le temps écoulé en secondes après la fin du bloc with.

Exemple :
with Timer() as t:
faire_quelque_chose()
print(t.elapsed) en secondes

Tests (2/4)

Timer fonctionne
import time
with Timer() as t:
    pass
assert isinstance(t.elapsed, float)
assert t.elapsed >= 0
Timer mesure
import time
with Timer() as t:
    time.sleep(0.01)
assert t.elapsed >= 0.005

+ 0 tests cachés

Indices (3 disponibles)

solution.py