Les instructions d'impression sont en quelque sorte le pire des deux mondes , combinant les aspects négatifs d'un débogueur en ligne avec une instrumentation de diagnostic. Vous devez modifier le programme mais vous n'obtenez pas plus de code utile .
Un débogueur en ligne vous permet d'inspecter l'état d'un programme en cours d'exécution; Mais ce qui est bien avec un vrai débogueur, c'est que vous n'avez pas à modifier la source; ni avant ni après la session de débogage; Il vous suffit de charger le programme dans le débogueur, d'indiquer au débogueur où vous voulez regarder et vous êtes prêt.
L'instrumentation de l'application peut nécessiter un certain travail au départ, en modifiant le code source d'une certaine manière, mais la sortie de diagnostic qui en résulte peut avoir d'énormes quantités de détails et peut être activée ou désactivée à un degré très spécifique. Le module de journalisation python peut afficher non seulement le message enregistré, mais également le fichier et la fonction qui l'ont appelé, un suivi s'il y en avait un, l'heure réelle à laquelle le message a été émis, etc. Plus que ça; les instruments de diagnostic ne doivent jamais être retirés; C'est tout aussi valable et utile lorsque le programme est terminé et en production que le jour où il a été ajouté; mais il peut avoir sa sortie bloquée dans un fichier journal où il n'est pas susceptible d'ennuyer qui que ce soit, ou le niveau de journal peut être baissé pour garder tous les messages sauf les plus urgents.
anticiper le besoin ou l'utilisation d'un débogueur n'est vraiment pas plus difficile que d'utiliser ipython pendant que vous testez et de vous familiariser avec les commandes qu'il utilise pour contrôler le débogueur intégré pdb.
Lorsque vous pensez qu'une instruction print pourrait être plus facile que d'utiliser pdb (comme c'est souvent le cas), vous constaterez que l'utilisation d'un enregistreur entraîne votre programme dans un état beaucoup plus facile à travailler que si vous utilisez et supprimez ultérieurement les instructions print .
Mon éditeur est configuré pour mettre en évidence les instructions d'impression comme des erreurs de syntaxe et les instructions de journalisation comme des commentaires, car c'est ainsi que je les considère.