85 votes

déposer dans un interpréteur python lors de l'exécution de la fonction

J'ai un module Python avec une fonction:

 def do_stuff(param1 = 'a'):
    if type(param1) == int:
        # enter python interpreter here
        do_something()
    else:
        do_something_else()
 

y at-il un moyen de tomber dans l'interprète de ligne de commande où j'ai le commentaire? de sorte que si je lance ce qui suit en python:

 >>> import my_module
>>> do_stuff(1)
 

Je reçois mon message suivant dans le cadre et le contexte de mon commentaire en do_stuff() ?

137voto

Matt Anderson Points 7461

Si vous souhaitez une invite interactive standard (au lieu du débogueur, comme indiqué par prestomation), vous pouvez procéder comme suit:

 import code
code.interact(local=locals())
 

Voir: le module de code .

Si vous avez installé IPython et souhaitez plutôt un shell IPython, vous pouvez procéder comme suit:

 from IPython.Shell import IPShellEmbed
ipshell = IPShellEmbed()
ipshell(local_ns=locals())
 

58voto

prestomation Points 1818

Insertion

 import pdb; pdb.set_trace()
 

va entrer dans le débogueur de python à ce point

Voir ici: http://docs.python.org/library/pdb.html

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