Dans l'article précédent, nous avons appris pourquoi python doit être débogué et introduit deux méthodes de débogage de python. Cependant, la méthode de débogage ne peut pas être expliquée dans un seul article, nous en parlerons donc dans cet article. les deux méthodes de débogage restantes. J'espère que ces méthodes de débogage pourront vous être utiles et vous aider à avancer plus rapidement sur la voie de l'apprentissage de Python.
logging
La troisième méthode est la suivante : remplacer print() par logging est la troisième méthode. Par rapport à assert, la journalisation ne générera pas d'erreur, et cela peut l'être. sortie dans un fichier :
import logging s = '0' n = int(s) logging.info('n = %d' % n) print(10 / n)
logging.info() peut générer un morceau de texte. Exécutez et ne trouvez aucune information sauf ZeroDivisionError. Que se passe-t-il?
Ne vous inquiétez pas, ajoutez une ligne de configuration après la journalisation de l'importation et réessayez :
import logging logging.basicConfig(level=logging.INFO)
Voir le résultat :
$ python err.py INFO:root:n = 0 Traceback (most recent call last): File "err.py", line 8, in <module> print(10 / n) ZeroDivisionError: division by zero
C'est l'avantage de logging, il vous permet de spécifier le niveau d'informations de journalisation, y compris le débogage, les informations, l'avertissement, l'erreur, etc. Lorsque nous spécifions level=INFO, logging.debug ne fonctionnera pas. De la même manière, après avoir spécifié level=WARNING, le débogage et les informations ne fonctionneront pas. De cette façon, vous pouvez générer en toute sécurité différents niveaux d'informations sans les supprimer, et enfin contrôler quel niveau d'informations est généré.
Un autre avantage de la journalisation est que grâce à une configuration simple, une instruction peut être sortie vers différents endroits en même temps, tels que la console et les fichiers.
pdb
La quatrième façon consiste à démarrer le débogueur Python pdb, à laisser le programme s'exécuter en mode une seule étape et vous pourrez vérifier l'état de fonctionnement à tout moment. On prépare d'abord le programme
# err.py s = '0' n = int(s) print(10 / n)
puis on le démarre :
$ python -m pdb err.py > /Users/michael/Github/learn-python3/samples/debug/err.py(2)<module>() -> s = '0'
Après avoir démarré avec le paramètre -m pdb, pdb localise le code à exécuter ensuite -> ;s = '0'. Saisissez la commande l pour afficher le code :
(Pdb) l 1 # err.py 2 -> s = '0' 3 n = int(s) 4 print(10 / n)
Saisissez la commande n pour parcourir le code :
(Pdb) n > /Users/michael/Github/learn-python3/samples/debug/err.py(3)<module>() -> n = int(s) (Pdb) n > /Users/michael/Github/learn-python3/samples/debug/err.py(4)<module>() -> print(10 / n)
Vous pouvez saisir la commande p à tout moment pour visualiser la variable nom :
(Pdb) p s '0' (Pdb) p n 0
Entrez la commande q pour terminer le débogage et quitter le programme :
(Pdb) q
(Cette méthode de débogage en ligne de commande via pdb est théoriquement universelle, mais elle est vraiment trop gênant)
Ce qui précède est tout le contenu décrit dans cet article. Cet article présente principalement les connaissances pertinentes du débogage python. . J'espère que ce que j'ai décrit dans cet article vous sera utile et vous facilitera l'apprentissage de Python.
Pour plus de connaissances connexes, veuillez visiter la colonne Tutoriel Python du site Web php chinois.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!