如何操作名称与PDB命令冲突的变量?

Nic*_*k T 78 python pdb

无论好坏,我的代码充斥着单字母变量(它是物理学的东西,所以这些字母是有意义的),以及NumPy,我经常与之互动.

在使用Python调试器时,偶尔我会想看看比如说的值n.但是,当我点击时n<enter>,这是PDB命令(n)ext,具有更高的优先级. print n看看它,但我怎么设置它?

Abr*_*ham 110

!在语句前使用感叹号使其运行:

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)
Run Code Online (Sandbox Code Playgroud)

  • IMO 对于 *commands* 的要求会更加用户友好!或一些这样的前缀。 (5认同)

Cor*_*man 13

你可以使用分号,所以只需在它前面加上其他东西:

ipdb> print n
2
ipdb> n
> 145 <some code here>
  146
  147

ipdb> 1; n=4
1
ipdb> print n
4
Run Code Online (Sandbox Code Playgroud)

  • 一个功能性的解决方法,但我相信'!' 是运营商打算处理这种情况. (7认同)