IPython终端shell中对象的彩色表示

时间:2013-07-31 18:11:55

标签: ipython

如果我想在QtConsole或IPython Notebook中有对象的彩色表示,我只需要将_repr_html_方法添加到对象类。

In [1]: class Test(object):
            def __init__(self, x):
                self.x = x

            def _repr_html_(self):
                return '''<span style="color: green">
                       Test{<span style="color: red">%s</span>}
                       </span>''' % self.x
In [2]: Test(33)
Test{33}

这将为我提供一个漂亮的彩色表示,其中Test{将为绿色,33红色和}绿色。

有没有办法以跨平台的方式在终端版本的IPython Shell中执行此操作?

理想情况下,它的工作方式与prompt customization的模板相同:

In [1]: class Test(object):
            def __init__(self, x):
                self.x = x

            def _repr_shell_(self):
                return '{color.Green}Test{{color.Red}%s{color.Green}}' % self.x

如果没有,我可以在我自己的控制台应用程序中以某种方式导入和使用IPython的内部跨平台着色系统吗?我查看了IPython代码库,但我没有找到任何直接的方法来使用它:(

1 个答案:

答案 0 :(得分:2)

您可以使用IPython中的TermColors 一个最小的例子是:

from IPython.utils.coloransi import TermColors as color
class Test(object):
   def __init__(self, x):
       self.x = x
   def __repr__(self):
       return '{0}Test{{{1}{2}{0}}}'.format(color.Green, color.Red, self.x)