默认情况下,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>]
有没有办法获得列表的对象表示方式?
答案 0 :(得分:2)
(转发回答)
要获得列表或任何对象的漂亮打印的repr,请致电:
from IPython.lib.pretty import pretty
pretty(obj)
如果您希望您的对象与其正常的repr分开一个漂亮的repr(例如,它不需要IPython到repr()
它),您可以定义_repr_pretty_(self, cycle=False)
方法。如果表示递归,则cycle
参数将为真 - 例如如果你把一个容器放在里面。