启用IPython笔记本丰富的显示

时间:2014-09-25 17:38:03

标签: python ipython

我似乎无法让IPython rich display system处理我的自定义类。我以前做过,但现在我错过了什么。

这会正确显示HTML代码:

import IPython.core.display
from IPython.display import display, HTML
HTML('<b>hey</b>')

但这不是:

class FooBase(object):
    def __init__(self, x):
        self.x = x

class FooHTML(FooBase):
    def _repr_HTML_(self):
        return '<span><b>FooHTML</b> x=%s</span>'%x

foo1 = FooHTML('hey')
foo1

我得到这个:

<__main__.FooHTML at 0x83fb160>

我错过了什么?我正在运行IPython 1.1.0。

1 个答案:

答案 0 :(得分:2)

卫生署!愚蠢的错别字。它是_repr_html_,而不是_repr_HTML_,我忘记在self中使用self.x

class FooBase(object):
    def __init__(self, x):
        self.x = x

class FooHTML(FooBase):
    def _repr_html_(self):
        return '<span><b>FooHTML</b> x=%s</span>' % self.x