4

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

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 的终端版本中执行此操作?

理想情况下,它的工作方式与提示自定义的模板相同:

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 代码库,但没有找到任何直接使用它的方法:(

4

1 回答 1

2

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

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)
于 2013-10-16T12:31:05.623 回答