不管怎样,我的代码充满了单个字母的变量(这是物理学的东西,所以这些字母是有意义的) ,还有 NumPy 的,我经常与它交互。
在使用 Python 调试器时,我偶尔会想查看值,比如 n。但是,当我点击 n<enter>时,这是 (n)ext的 PDB 命令,它的优先级更高。print n可以看着它工作,但是我怎样才能设置它呢?
n
n<enter>
(n)ext
print n
这不是对您的问题的直接回答,但它可能对您有所帮助: PuDB是 PDB 的一个基于控制台的可视化界面,它通过设计将命令与变量操作分离开来。
Eric IDE,Wing IDE 和 Spyder 提到的几个都有值得一试的可视化调试器,因为它们将值的显示从命令中分离出来。
你可以用分号,所以在前面加点别的东西:
ipdb> print n 2 ipdb> n > 145 <some code here> 146 147 ipdb> 1; n=4 1 ipdb> print n 4
在语句之前使用叹号 !来运行它:
!
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)
医生表示:
! statement 在当前堆栈帧的上下文中执行(一行) 声明。除非语句的第一个单词类似于调试器命令,否则可以省略该叹号。[...]
! statement
在当前堆栈帧的上下文中执行(一行) 声明。除非语句的第一个单词类似于调试器命令,否则可以省略该叹号。[...]
使用括号 (variable_name)。
(variable_name)
例如,如果您有一个名为 q的变量,并且希望检查它的值。 如果在提示符中直接输入 q,则 ipdb调试过程将退出并中断。
q
ipdb
>>> q
相反,您应该输入 (q)来检查这个变量:
(q)
>>> (q)
然后它的值将被打印出来。