如何在IPython中打印对象表示

时间:2016-10-22 14:48:07

标签: ipython

默认情况下,IPython以一种漂亮的方式输出列表表示:

In [1]: test_list
Out[1]: [<object_1>,
         <object_2>,
         <object_3>]

我的目标是:

class TestObject(object):
    def __init__(self):
        self._list = [<object_1>, <object_2>, <object_3>]

    def __repr__(self):
        return self._list.__repr__()

test_object = Test()

IPython的表现形式是:

In [2]: test_list
Out[2]: [<object_1>, <object_2>, <object_3>]

有没有办法获得列表的对象表示方式?

1 个答案:

答案 0 :(得分:2)

(转发回答)

要获得列表或任何对象的漂亮打印的repr,请致电:

from IPython.lib.pretty import pretty
pretty(obj)

如果您希望您的对象与其正常的repr分开一个漂亮的repr(例如,它不需要IPython到repr()它),您可以定义_repr_pretty_(self, cycle=False)方法。如果表示递归,则cycle参数将为真 - 例如如果你把一个容器放在里面。