ipdb 调试器中的 IPython 帮助功能

Rus*_*rdt 6 python debugging ipython ipdb

可以通过help命令或使用? 特点。例如,对于内置sum函数的帮助,可以使用 IPython shell 中的以下任一命令。

In [1]: help(sum)
Help on built-in function sum in module builtin:
...

In [2]: sum?
Signature: sum(iterable, start=0, /)
Docstring: ...
Run Code Online (Sandbox Code Playgroud)

我想在ipdb调试器中具有相同的功能。通过将以下代码放置在调试断点的位置,可以进入ipdb调试器。

from ipdb import set_trace
set_trace()
Run Code Online (Sandbox Code Playgroud)

但是,一旦进入ipdb调试器,帮助功能就不再起作用。

ipdb> help(sum)
*** No help for '(sum)'
ipdb> sum?
*** SyntaxError: invalid syntax
ipdb>
Run Code Online (Sandbox Code Playgroud)

IPython shell 和 ipdb 调试器中的帮助

下面的命令代表了一种在ipdb调试器中打印文档字符串的方法,但这与help(sum)sum? 在 IPython 外壳中。

ipdb> print(sum.__doc__)
Run Code Online (Sandbox Code Playgroud)

那么如何在 IPython shell 中存在的 ipdb 调试器中获得相同的帮助功能?

Way*_*ner 10

看起来你可以用一个!(它的缩写exec)作为它的开头

ipdb> !help(sum)
Help on built-in function sum in module builtins:

sum(iterable, start=0, /)
    Return the sum of a 'start' value (default: 0) plus an iterable of numbers

    When the iterable is empty, return the start value.
    This function is intended specifically for use with numeric values and may
    reject non-numeric types.
(END)
Run Code Online (Sandbox Code Playgroud)