201 votes

Comment exécuter des instructions multilignes dans le débogueur de Python (PDB) ?

Je lance donc un script Python dans lequel j'appelle le débogueur de Python, PDB, en écrivant :

import ipdb; ipdb.set_trace()

(version iPython de PDB, bien que je ne pense pas que cela fasse une différence ; je l'utilise uniquement pour la sortie colorée).

Maintenant, lorsque j'accède au débogueur, je veux exécuter une instruction de plusieurs lignes telle qu'une clause if ou une boucle for, mais dès que je tape

if condition:

et que j'appuie sur la touche retour, j'obtiens le message d'erreur suivant *** SyntaxError: invalid syntax (<stdin>, line 1)

Comment peut-on exécuter des instructions multilignes dans PDB ? Si ce n'est pas possible, existe-t-il un moyen de contourner ce problème en exécutant une clause if ou une boucle for ?

2voto

zeekay Points 22640

Je ne sais pas si c'est possible, mais ce serait une fonctionnalité intéressante pour ipdb. Vous pouvez utiliser des compréhensions de liste bien sûr, et exécuter des expressions simples sur plusieurs lignes comme :

if y == 3: print y; print y; print y;

Vous pouvez également écrire quelques fonctions au préalable pour faire ce que vous voulez faire et qui prendrait normalement plusieurs lignes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X