← retour aux snippets

contextlib.nullcontext: option sans effet

Fournir un context manager no-op pour simplifier le code conditionnel.

objectif

Fournir un context manager no-op pour simplifier le code conditionnel.

code minimal

from contextlib import nullcontext
x = 1
with nullcontext():
    x += 1
print(x == 2)  # attendu: True

utilisation

from contextlib import nullcontext
enabled = False
ctx = open("tmp.txt","w",encoding="utf-8") if enabled else nullcontext()
if enabled:
    ctx.write("x")  # ne s'exécute pas ici
print(hasattr(ctx, "__enter__"))

variante(s) utile(s)

from contextlib import nullcontext
with nullcontext(5) as v:
    print(v == 5)

notes

  • nullcontext(value) renvoie value depuis enter.
  • Parfait pour éviter if/else autour d’un with.