Blog • code, python

L'instruction assert en Python

C'est quoi l'instruction assert en Python ? Pourquoi, comment et quand l'utliser ? Découvrez les secrets de l'instruction assert avec des exemples !

Publié le 13 janvier 2023 2 min de lecture

En Python, l'instruction assert permettent de s'assurer qu'une condition est remplie avant de poursuivre l'exécution d'un script. Elle est utilisée principalement lors du débogage du code.

age = -1

assert age < 0, "L'âge ne peut pas être négatif"

C'est quoi assert en Python ?

L'instruction assert vérifie qu'une condition est vraie sinon elle lève une erreur avec un message d'erreur spécifique s'il est spécifié.

assert condition
assert condition, message
  • Si condition est fausse, une erreur AssertionError est levée, si elle est vrai, on continue l'éxécution de notre script.

  • Le message est optionnel, on aura un message personnalisé si une chaîne de caractères est fournie, sinon une simple AssertionError

assert est un mot clé qui permet de faire la même chose qu'avoir un if et lever une erreur avec raise :

if not condition:
  raise AssertionError(message)

La seule différence est que assert ne s'exécute qu'en mode débogage contrairement à raise ... qui s'exécute tout le temps peut importe si on est en mode __debug__ ou pas.

En effet, l'instruction assert ne s'exécute que si notre script Python est en mode __debug__. Par défaut c'est mode est True. Vous pouvez le vérifier en lançant un interpréteur Python et en affichant la valeur de cette variable.

$ python
Python 3.10.9 (main, ...) [...] on ...
>>> __debug__
True

Pour désactiver le mode __debug__, il suffit de lancer python avec le flag -O :

$ python -O
Python 3.10.9 (main, ...) [...] on ...
>>> __debug__
False

Pour être plus précis on peut donc dire que assert est une sorte de macro pour le code suivant :

if __debug__:
  if not condition:
    raise AssertionError(message)

Quand utiliser assert en Python ?

On utilise l'instruction assert principalement quand on debug du code. Il utiliser l'instruction assert avec parcimonie et ne pas oublier de les retirer une fois le programme débogué.

En lien avec cet article

Cours Python débutant

Démarrez en Python à partir de zéro : variables, conditions, boucles, fonctions et structures de données. Chaque notion est suivie d'exercices corrigés automatiquement.

Bases du langageExercices corrigés4 projets progressifs
Voir le cours
Thomas Collart

Thomas Collart, développeur et formateur depuis plus de 20 ans. J'ai formé 3 700 étudiants à travers mes formations en ligne, cumule plus de 2 700 000 vues et 56 700 abonnés sur YouTube, TikTok et Instagram.