python pdb自动漂亮打印

时间:2014-08-15 21:35:29

标签: python pdb

我发现自己经常在pdb中这样做:

import pprint
pprint.PrettyPrinter().pprint(variable_of_interest)

有没有更好的方法从pdb中打印变量?我正在寻找更容易输入的内容,理想情况下,pdb中始终可以使用这些内容,因此我可以在调试时随时使用它。

4 个答案:

答案 0 :(得分:20)

Debugger Commands部分的pdb文档中:

  

pp表达

     

p 命令类似,但表达式的值使用pprint模块打印得非常漂亮。

答案 1 :(得分:0)

一旦您进入(Pdb)shell:

(Pdb)$ import pprint

# then you can pretty print your variables.
(Pdb)$ pp( locals() )
(Pdb)$ pp(request.data)

此外,我建议使用新的pdb替代方案breakpoint(),这样就不必在任何开发环境源代码中导入pdb软件包。比pdb.set_trace()

更容易键入

答案 2 :(得分:0)

就像@ enrico.bacis提到的Error C2039 "f": not a member of "Top" Error C3083 "A": The symbol on the left side of "::" must be a type Error C3861 "f": Cannot find identifier 可以在使用pdb时进行漂亮的打印。

pp

答案 3 :(得分:-1)

这是我的做法:

import pdb
import pprint

"""
Debugging views
pdb.set_trace()

With pretty-print
pp(my_var)
"""
def my_view(request):
    pdb.set_trace()
    # rest of view

然后在调试器中

> (Pdb) pp(my_var)

尽管,我想知道如何编辑pdb设置以将p更改为pp