point d'arrêt Python()
La fonction breakpoint() de Python est une nouvelle fonction intégrée introduite dans Python 3.7. Le débogage du code Python a toujours été un processus pénible à cause du couplage étroit entre le code réel et le code du module de débogage. Par exemple, si vous utilisez le débogueur pdb, vous devrez appeler pdb.set_trace() dans votre code de programme. Si vous voulez utiliser un autre débogueur, disons web-pdb, vous devrez supprimer tout le code lié à PDB et ajouter la méthode web_pdb.set_trace(). Cela entraîne un énorme surcoût pour l'utilisation du débogueur Python et rend le code Python difficile à déboguer et à maintenir. C'est pourquoi Python 3.7 a introduit la méthode breakpoint() qui nous permet d'écrire un code de débogage faiblement couplé.
Point d'arrêt Python()
La fonction breakpoint() de Python appelle la fonction sys.breakpointhook(). Par défaut, sys.breakpointhook() appelle la fonction pdb.set_trace(). Ainsi, au minimum, l'utilisation de breakpoint() offre une commodité lors de l'utilisation d'un débogueur, car nous n'avons pas à importer explicitement le module pdb. Voyons un exemple simple d'utilisation de la fonction breakpoint(). Nous avons un script python python_breakpoint_examples.py avec le code suivant.
x = 10
y = 'Hi'
z = 'Hello'
print(y)
breakpoint()
print(z)
Lorsque nous exécutons ce script, la console du débogueur PDB s'ouvre.
$python3.7 python_breakpoint_examples.py
Hi
> /Users/pankaj/Documents/PycharmProjects/BasicPython/basic_examples/python_breakpoint_examples.py(8)()
-> print(z)
(Pdb) c
Hello
$
Point d'arrêt Python() - Arrêter le débogage
La fonction sys.breakpointhook() de Python utilise la variable d'environnement PYTHONBREAKPOINT pour configurer le débogueur. Si elle n'est pas définie, le débogueur PDB par défaut est utilisé. Si elle est définie sur "0", alors la fonction retourne immédiatement et aucune détection de code n'est effectuée. C'est très utile lorsque nous voulons exécuter notre code sans débogage.
$PYTHONBREAKPOINT=0 python3.7 python_breakpoint_examples.py
Hi
Hello
$
Point d'arrêt Python() - Changer le module de débogage
Nous pouvons utiliser la variable d'environnement PYTHONBREAKPOINT pour fournir la méthode du débogueur à appeler par la fonction breakpoint(). Cela est très utile car nous pouvons changer facilement le module de débogage sans modifier de code. Disons que nous voulons utiliser le débogueur web-pdb. Nous pouvons facilement l'intégrer dans notre programme en utilisant PYTHONBREAKPOINT=web_pdb.set_trace. Tout d'abord, assurez-vous que web-pdb est installé. Vous pouvez l'installer en utilisant la commande pip3.7 install web-pdb.
Selon la documentation de web-pdb, il est compatible avec la nouvelle fonction breakpoint() ajoutée dans Python 3.7.
$PYTHONBREAKPOINT=web_pdb.set_trace python3.7 python_breakpoint_examples.py
Hi
2018-08-10 12:49:54,339: root - web_console:110 - CRITICAL - Web-PDB: starting web-server on pankaj:5555...
Ouvrez l'URL du serveur web fournie dans le journal de la console et vous verrez la fenêtre de débogage comme sur l'image ci-dessous.
Résumé
La fonction breakpoint() de Python est un ajout très utile à la fonctionnalité de débogage de Python. Il est recommandé de l'utiliser pour le débogage afin de pouvoir facilement connecter d'autres débogueurs tiers à la volée. Elle offre également une option facile pour désactiver le débogueur et exécuter le programme normalement.
Vous pouvez consulter plus d'exemples Python dans notre dépôt GitHub.
Référence : Documentation officielle




