无论好坏,我的代码充斥着单字母变量(它是物理学的东西,所以这些字母是有意义的),以及NumPy,我经常与之互动。
使用Python调试器时,偶尔我会想看一下n
的值。但是,当我点击n<enter>
时,这是(n)ext
的PDB命令,它具有更高的优先级。 print n
正在研究它,但我该怎么设置呢?
在语句之前使用感叹号!
使其运行:
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)
docs说:
! statement
在当前堆栈帧的上下文中执行(一行)语句。除非语句的第一个单词类似于调试器命令,否则可以省略感叹号。 [...]
你可以使用分号,所以只需在它前面加上其他东西:
ipdb> print n
2
ipdb> n
> 145 <some code here>
146
147
ipdb> 1; n=4
1
ipdb> print n
4
这不是你问题的直接答案,但它可能对你有所帮助:PuDB是一个基于控制台的PDB可视化界面,它将命令与变量操作分开设计。
Eric IDE,Wing IDE和Spyder提到的几个都有可视化调试器,因为它们将命令的值显示分开。