Il est possible de réaliser quelque-chose de similaire en mode console (python interactif) qui fonctionne aussi bien sous Windows que sous Linux. Très utile si l'on se trouve sur un environnement sans facilité.
Je bosse sur un projet TkInter et j'aurais trouvé intéressant de pouvoir inspecter le contenu d'un événement en mode interactif... bref, sauter dans un débogueur mais "sans débogueur" à disposition.
J'ai trouvé ce petit bout de code qui fonctionne à merveille et qui lance un python interactif là où j'en ai besoin.
La réponse se trouve dans code.interact()
>>> import code >>> def foo(): ... a = 10 ... code.interact(local=locals()) ... return a ... >>> foo() Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) >>> a 10
- Presser Ctrl+Z pour terminer la session interactive.
- Il n'est pas possible de modifier les variables locales (cela n'a pas d'implication sur le code appelant).
- Vous pouvez lister inspecter les variables locales en utilisant dir()
N'oubliez pas de démarrez votre programme avec python.exe et non pythonw.exe pour disposer d'une console ;-)
import code ... ... def focus_next_window(event): """ Move focus to next item, Bind it for""" print( type(event.widget) ) code.interact(local=locals()) event.widget.tk_focusNext().focus() return("break")
Souce: http://stackoverflow.com/questions/13432717/enter-interactive-mode-in-python
Aucun commentaire:
Enregistrer un commentaire