Python调试技巧
调试Python的最佳技巧是什么?
请不要仅仅列出特定的调试器,而不会说明它实际上可以做什么。
有关
PDB
你可以使用pdb模块,在任何地方插入pdb.set_trace()
,它将作为一个断点。
>>> import pdb
>>> a="a string"
>>> pdb.set_trace()
--Return--
> <stdin>(1)<module>()->None
(Pdb) p a
'a string'
(Pdb)
要继续执行,请使用c
(或cont
或continue
)。
可以使用pdb执行任意的Python表达式。 例如,如果发现错误,则可以更正代码,然后键入一个类型表达式以在运行代码中具有相同的效果
ipdb是IPython的pdb版本。 它允许使用包含Tab完成功能的所有IPython功能。
也可以将pdb设置为自动运行未捕获的异常。
Pydb被写为一个增强版的Pdb。 好处?
http://pypi.python.org/pypi/pudb,一个全屏,基于控制台的Python调试器。
它的目标是以更轻量级和键盘友好的软件包提供基于GUI的现代调试器的所有优点。 PuDB允许你在你编写和测试的地方调试代码 - 在终端中。 如果你已经使用了基于DOS的Turbo Pascal或C工具,但是PuDB的UI可能看起来很熟悉。
很好的调试独立脚本,只需运行
python -m pudb.run my-script.py
如果您使用的是pdb,则可以为快捷方式定义别名。 我使用这些:
# Ned's .pdbrc
# Print a dictionary, sorted. %1 is the dict, %2 is the prefix for the names.
alias p_ for k in sorted(%1.keys()): print "%s%-15s= %-80.80s" % ("%2",k,repr(%1[k]))
# Print the instance variables of a thing.
alias pi p_ %1.__dict__ %1.
# Print the instance variables of self.
alias ps pi self
# Print the locals.
alias pl p_ locals() local:
# Next and list, and step and list.
alias nl n;;l
alias sl s;;l
# Short cuts for walking up and down the stack
alias uu u;;u
alias uuu u;;u;;u
alias uuuu u;;u;;u;;u
alias uuuuu u;;u;;u;;u;;u
alias dd d;;d
alias ddd d;;d;;d
alias dddd d;;d;;d;;d
alias ddddd d;;d;;d;;d;;d
链接地址: http://www.djcxy.com/p/42813.html