How do I manipulate a variable whose name conflicts with PDB commands?

后端 未结 4 814
离开以前
离开以前 2020-12-23 15:39

My code is, for better or worse, rife with single letter variables (it\'s physics stuff, so those letters are meaningful), as well as NumPy\'s, which I\'m often interacting

相关标签:
4条回答
  • 2020-12-23 16:06

    Eric IDE, Wing IDE & Spyder to mention just a few all have visual debuggers that are worth a go as they separate the display of values from the commands.

    0 讨论(0)
  • 2020-12-23 16:07

    That is not the direct answer to your question, but it may help you: PuDB is a console-based visual interface for PDB which separates commands from variable manipulation by design.

    0 讨论(0)
  • 2020-12-23 16:15

    Use an exclamation mark ! before a statement to have it run :

    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)
    

    The docs say:

    ! statement

    Execute the (one-line) statement in the context of the current stack frame. The exclamation point can be omitted unless the first word of the statement resembles a debugger command. [...]

    0 讨论(0)
  • 2020-12-23 16:25

    You can use semicolons, so just put something else in front of it:

    ipdb> print n
    2
    ipdb> n
    > 145 <some code here>
      146
      147
    
    ipdb> 1; n=4
    1
    ipdb> print n
    4
    
    0 讨论(0)
提交回复
热议问题