我的理解是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在输出上应用了哪些转换?
答案 0 :(得分:8)
而不是repr
或标准pprint
模块IPython使用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使用自己漂亮的打印机,因为标准的Python pprint
模块“不允许开发人员提供他们自己的漂亮打印回调。”