如何在IPython中打印对象表示

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

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>]

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

最佳答案 (作为答案重新发布)

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

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

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

点赞