L'instruction assert en Python
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é.
Je m'appelle Thomas, et je code depuis plus de 20 ans. Depuis ma sortie de la première promotion de l'École 42, j'ai conçu et développé des centaines d'applications et de sites web. Sur ce blog, je partage avec vous les stratégies les plus efficaces pour maîtriser l'art de coder et progresser rapidement.