Mon code est, pour le meilleur ou pour le pire, rempli de variables à une seule lettre (c'est de la physique, donc ces lettres ont un sens), ainsi que de NumPy, avec lequel j'interagis souvent.
Lorsque vous utilisez le débogueur Python, je vais parfois vouloir regarder la valeur de, par exemple, n
. Cependant, lorsque j'appuie sur n<enter>
, c'est la commande PDB pour (n)ext
, qui a une priorité plus élevée. print n
fonctionne en le regardant, mais comment le définir?
Utilisez un point d'exclamation !
avant une instruction pour l'exécuter:
python -m pdb test.py
> /home/user/test.py(1)<module>()
-> print('foo')
(Pdb) !n = 77
(Pdb) !n
77
(Pdb) n
foo
> /home/user/test.py(2)<module>()
-> print('bar')
(Pdb)
Les docs disent:
! statement
Exécutez l'instruction (une ligne) dans le contexte du cadre de pile actuel. Le point d'exclamation peut être omis sauf si le premier mot de l'instruction ressemble à une commande de débogage. [...]
Vous pouvez utiliser des points-virgules, alors mettez simplement autre chose devant:
ipdb> print n
2
ipdb> n
> 145 <some code here>
146
147
ipdb> 1; n=4
1
ipdb> print n
4
Ce n'est pas la réponse directe à votre question, mais cela peut vous aider: PuDB est une interface visuelle basée sur console pour PDB qui sépare les commandes de la manipulation des variables par conception.