2016-04-04 1 views
0

Je cours un script python. Dans ce script, j'importer une fonction à partir d'un autre module comme:Python: Puis-je définir pdb.set_trace() dans la fonction importée

from preprocessing import train_batch 

la fonction train_batch est appelée dans le script que je suis en cours d'exécution. Maintenant, pour vérifier le train_batch dans plus de détails, je trouve le preprocessing.py et insérer pdb.set_trace() dans train_batch dans le preprocessing.py, mais cela ne fonctionne pas.

Donc je veux demander: puis-je utiliser pdb.set_trace() dans un module importé? Si je peux, alors cela doit signifier que le module que j'ai trouvé est faux et j'ai besoin de trouver le bon endroit. Si je ne peux pas, alors est-il un bon moyen de vérifier la fonction importée si nécessaire?

Répondre

2

Vous pouvez faire un import pdb; pdb.set_trace() n'importe où dans le code Python *. Si ça ne marche pas, je suppose que tu veux dire que tu n'as jamais chuté dans pdb. Cela signifie que cette ligne de code n'est pas en cours d'exécution.

Vous pouvez utiliser la commande 's' dans pdb pour entrer dans le code, même si ce n'est pas le vôtre. Tant que c'est du code Python et pas du code C, ça devrait aller. Je ne suis pas sûr de ce qui se passe pour le code C.

  • sauf dans un lambda. Mais en général, n'importe où
+0

Merci beaucoup pour votre réponse! – gladys0313

0

Oui. pdb.set_trace() est juste un appel de fonction; vous pouvez le placer n'importe où que vous pouvez mettre n'importe quel autre appel de fonction.

+0

merci pour votre réponse – gladys0313