默认情况下,IPython 以一种漂亮的方式输出列表表示:
In [1]: test_list
Out[1]: [<object_1>,
<object_2>,
<object_3>]
Run Code Online (Sandbox Code Playgroud)
我有这样的对象:
class TestObject(object):
def __init__(self):
self._list = [<object_1>, <object_2>, <object_3>]
def __repr__(self):
return self._list.__repr__()
test_object = Test()
Run Code Online (Sandbox Code Playgroud)
而 IPython 对此的表示是:
In [2]: test_list
Out[2]: [<object_1>, <object_2>, <object_3>]
Run Code Online (Sandbox Code Playgroud)
有没有办法获得我的对象表示的列表方式?
要获取列表或任何对象的漂亮打印repr,请调用:
from IPython.lib.pretty import pretty
pretty(obj)
Run Code Online (Sandbox Code Playgroud)
如果你想让你的对象有一个漂亮的 repr 与它的正常 repr 分开(例如,它不需要 IPython repr()),你可以定义一个_repr_pretty_(self, cycle=False)方法。cycle如果表示递归,则该参数将为 true - 例如,如果您将容器放入其内部。
| 归档时间: |
|
| 查看次数: |
5282 次 |
| 最近记录: |