我的理解是 python 将打印输出的 repr,但显然情况并非总是如此。例如:

在 ipython 中:

In [1]: type([])
Out[1]: list

In [2]: set([3,1,2])
Out[2]: {1, 2, 3}

在 python 中:
>>> type([])
<type 'list'>
>>> set([3,1,2])
set([1, 2, 3])

ipython 对输出应用什么转换?

最佳答案

IPython 使用 repr 方法代替 pprint 或标准 IPython.lib.pretty.RepresentationPrinter.pretty 模块 print the output

模块 IPython.lib.pretty 提供了两个在幕后使用 RepresentationPrinter.pretty 的函数。
IPython.lib.pretty.pretty 函数返回对象的字符串表示:

>>> from IPython.lib.pretty import pretty
>>> pretty(type([]))
'list'
IPython.lib.pretty.pprint 函数打印对象的表示:
>>> from IPython.lib.pretty import pprint
>>> pprint(type([]))
list

IPython 使用自己的 pretty-print ,因为标准的 Python pprint 模块“不允许开发人员提供他们自己的 pretty-print 回调”。

关于python - ipython 和 python 之间的输出差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21110915/

10-15 14:53