La question est, comment puis-je configurer le débogueur Python pour me montrer dans la console quelles fonctions sont appelées? Afin de ne pas voir tout clignoter, un délai entre les appels de fonction serait nécessaire.Imprimer des appels de fonction avec un délai variable/Python
Répondre
Vous pouvez utiliser l'autre débogueur pydb. Vous pouvez l'appeler avec pydb --fntrace --batch <scriptname>
pour obtenir une trace de fonction. En ce qui concerne le "clignotement", utilisez les outils habituels comme Ctrl-S/Ctrl-Q sur un terminal ANSI, ou redirigez vers un fichier.
Si vous souhaitez surveiller quand quelques fonctions particulières sont appelées, vous pouvez utiliser ce décorateur:
import functools
def trace(f):
@functools.wraps(f)
def wrapper(*arg,**kw):
'''This decorator shows how the function was called'''
arg_str=','.join(['%r'%a for a in arg]+['%s=%s'%(key,kw[key]) for key in kw])
print "%s(%s)" % (f.__name__, arg_str)
return f(*arg, **kw)
return wrapper
On peut l'utiliser comme ceci:
@trace # <--- decorator your functions with the @trace decorator
def foo(x,y):
# do stuff
Lorsque vous exécutez votre programme, à chaque fois que foo (x, y) est appelé, vous verrez l'appel de fonction avec la valeur de ses arguments dans la console:
foo(y=(0, 1, 2),x=(0, 0, 0))
Fonctionnalité intéressante. Dans quelles versions de Python pouvez-vous faire cela? – citn
Les décorateurs ont été introduits en 2.4, et functools a été introduit en 2.5. Il existe une autre façon d'écrire le décorateur de traces qui ne dépend pas de functools: Voir http://pypi.python.org/pypi/decorator#a-trace-decorator – unutbu
- 1. documentation des appels de fonction
- 2. Exécuter une fonction avec délai de glissement
- 3. Appels de fonction d'imbrication
- 4. appels de fonction [javascript]
- 5. Fonction pointeur Appels
- 6. Problème avec les appels de fonction pexpect et 'chaînés'
- 7. Comment générer un lambda compilé avec des appels de méthodes?
- 8. Comment introduire un délai dans ma fonction?
- 9. Confondre à propos des appels de fonction de thème
- 10. Imprimer un bitmap sans imprimer un sprite?
- 11. Quels compilateurs peuvent intégrer des appels de fonction indirects?
- 12. Appels de fonction de piste DLL
- 13. Manière élégante d'abstraire des appels de fonction multiples?
- 14. Interruption de la fonction de délai jQuery
- 15. Délai Jquery sur la fonction
- 16. Imprimer des flottants avec un nombre spécifique de zéros
- 17. Comment mocker des appels de fonction chaînés en python?
- 18. fonction des appels JavaScript dans les champs de formulaire Django
- 19. Imprimer la liste des paramètres de la fonction en Python
- 20. Erreur - Appels de fonction récursifs en passant des listes - OCaml
- 21. Diagramme UML pour les appels de fonction
- 22. Signal/Slot vs appels de fonction directe
- 23. jQuery - Traverser en continu avec un délai
- 24. Comment définir le délai d'expiration des appels de service Web générés par Java Wireless Toolkit?
- 25. Invoke avec délai d'attente
- 26. Sécurité des appels AJAX
- 27. Gestion des appels asynchrones
- 28. Imprimer un document avec un identificateur textuel
- 29. Comment puis-je appeler une fonction avec délai en python?
- 30. Pour imprimer des données dans un fichier
Je pense que ce débogueur peut faire le travail que pdb ne peut pas faire! J'ai trouvé un bon tutoriel sur showmedo.com/videotutorials/.... Voyez la fonctionnalité "set linetrace delay 0.35" au milieu. Merci – citn