Je trouve moi-même ajouter des déclarations "print" de débogage assez souvent - des choses comme ceci:
print("a_variable_name: %s" % a_variable_name)
3 Réponses :
Ne faites pas ça. Utiliser un débogueur décent à la place. Le moyen le plus simple de le faire est d'utiliser ipython et soit à attendre une exception (le débogueur Définissez automatiquement) ou pour provoquer un en exécutant une instruction illégale (par exemple, 1/0 code>) à la partie du code que vous souhaitez inspecter. p>
+1 Pour utiliser le bon outil, il essaie de marteler un clou avec un couteau suisse de l'armée
Parfois, un débogueur est excellent, mais parfois à l'aide d'énoncés d'impression est plus rapide et plus facile à configurer et à utiliser de manière répétée.
Ceci ne peut être approprié que pour le débogage avec CPPHON (puisque tous les pythons impliquent in utils_debug.py: Inspect.Currentframe et
inspect.getterframes code>), mais je trouve cela utile pour avoir coupé sur la frappe: p>
C-x ( # start keyboard macro
C-s pv('
C-a
C-k # change this to M-; if you just want to comment out the pv call
C-x ) # end keyboard macro
Votre chemin peut ne pas être très élégant, mais je trouve cela assez utile, ayant le même besoin que SCHOF, évite de taper de manière redondante lors du débogage des variables
Je sais que c'est une vieille réponse, alors les choses auraient pu changer. Mais je suis tombé sur cela avec Google, je vais donc laisser cela ici. Maintenant, vous pouvez directement faire image = inspecter.Currentframe (). F_back code> qui est un peu plus agréable et plus clair :)
Je suis venu avec ceci: p>
Après toutes ces années et trébuchant avec cette question à nouveau, je l'obtiens enfin, ce dont nous avions besoin de tous les plus syntaxiques de macros! c'est à dire. dans # Julia-lang :
@show foo = 1.0 + 3IM / 2 code> impressions;
FOO = 1.0 + (3IM) / 2 = 1.0 + 1.5IM CODE>, où
@show code> est une macro et peut être utilisé pour anyoter toute expression (dans Julia Tout est une expression ), vous pouvez voir le code généré de la macro expansion ici: git.io/vgdch J'ai trouvé cette implémentation de Macros syntaxiques pour Python: