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 !

Article publié le et mis à jour le .
L'instruction assert en Python
🐍 Apprenez à maîtriser Python avec 200+ exercices !

Rejoignez mon cours sur Udemy, pour apprendre Python par la pratique avec plus de 200 exercises pour les débutants.

83 places sur 100 déjà parties

🚀 Le prix augmente tous les 100 membres !

Rejoignez le cours maintenant

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é.

🐍 Apprenez à maîtriser Python avec 200+ exercices !

Rejoignez mon cours sur Udemy, pour apprendre Python par la pratique avec plus de 200 exercises pour les débutants.

83 places sur 100 déjà parties

🚀 Le prix augmente tous les 100 membres !

Rejoignez le cours maintenant