Python PDB自动漂亮打印

21

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

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

有没有更好的方法来从pdb中美化打印变量?我正在寻找一些更容易输入的东西,最好是随时可以在pdb中使用的内容,这样我就可以在调试任何时间使用它了。

4个回答

49

pdb 文档的 调试器命令 部分中:

pp expression

类似于 p 命令,但表达式的值会使用 pprint 模块进行漂亮打印。


4
好的,我会尽力完成您的翻译要求。以下是需要翻译的内容:@nonagon 哎呀,我已经用Python好几年了,但我还不知道 pdb 中的 pp - Trevor Boyd Smith
@TrevorBoydSmith 哈哈,是的,经过多年,我突然想到如果默认加载pprint会很棒,我该怎么做呢?然后偶然发现了这个。 - PascalVKooten

6

正如 @enrico.bacis 所提到的,在使用 pdb 时可以使用 pp 进行漂亮打印。

(Pdb) pp your_var

3
一旦你进入了(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() 更容易输入。


-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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接