我发现自己经常在pdb中这样做:
import pprint
pprint.PrettyPrinter().pprint(variable_of_interest)
有没有更好的方法从pdb中打印变量?我正在寻找更容易输入的内容,理想情况下,pdb中始终可以使用这些内容,因此我可以在调试时随时使用它。
答案 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