python - 使用IPython对象?在ipdb中

通过将object?写入REPL,IPython提供了方便的对象检查工具。

可以在ipdb中访问吗?它似乎不能作为内置命令使用。

目前,我看到该帮助仅提供标准的pdb帮助:

ipdb> help

Documented commands (type help <topic>):
========================================
EOF    bt         cont      enable  jump  pdef    psource  run      unt
a      c          continue  exit    l     pdoc    q        s        until
alias  cl         d         h       list  pfile   quit     step     up
args   clear      debug     help    n     pinfo   r        tbreak   w
b      commands   disable   ignore  next  pinfo2  restart  u        whatis
break  condition  down      j       p     pp      return   unalias  where

最佳答案

IPython Shell中的对象检查会打印文档字符串和其他信息。 ipdb调试器可以打印docstring,这是IPython对象检查正在执行的操作的一部分。只需输入

ipdb> print(object.__doc__)


例如,检查内置求和函数

ipdb> print(sum.__doc__)
sum(iterable[, start]) -> value

Return the sum of an iterable of numbers (NOT strings) plus the value
of parameter 'start' (which defaults to 0).  When the iterable is
empty, return start.
ipdb>


这是在IPython Shell中发生的事情的大部分方法

In [5]: sum?
Docstring:
sum(iterable[, start]) -> value

Return the sum of an iterable of numbers (NOT strings) plus the value
of parameter 'start' (which defaults to 0).  When the iterable is
empty, return start.
Type:      builtin_function_or_method

In [6]:


另一种选择是仅将IPython shell嵌入为调试断点。很好,但是当这样的调试断点嵌入到循环中时,我还没有找到一种干净退出的方法。

from IPython import embed
embed()  # debug breakpoint


我刚刚了解的一个更好的方法是使用!在ipdb中,则工作原理与在IPython Shell中相同。

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.

ipdb>

本文翻译自 https://stackoverflow.com/questions/25974535/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 python ipython pdb ipdb


相关文章:

python - 从Python的任何站点抓取链接标题的一般方法是?

python - 在matplotlib中覆盖pcolormeshes

python - 如何使用日志记录恢复iPython 0.13.2会话

python - 在读取制表符分隔的数据时,Pandas似乎忽略了第一列名称,给出了KeyError

python - 在ipython中执行`ls`时如何修复PermissionError?

windows - SymStore-添加多个文件

python - 具有日期索引的pandas数据框->插入MySQL

python - 在python中声明和初始化2d数组

c# - 没有PDB文件的C#反编译器如何工作?

c++ - 某些配置VS 2010中的特定项目上缺少符号