8.19. repr —备用 repr()实施

Note

repr模块在 Python 3 中已重命名为reprlib2to3工具在将源转换为 Python 3 时将自动适应导入。

源代码: Lib/repr.py


repr模块提供了一种生成对象表示的方法,该对象表示对结果字符串的大小有限制。这在 Python 调试器中使用,并且在其他上下文中也可能有用。

该模块提供了一个类,一个实例和一个函数:

8.19.1. 代表对象

Repr实例提供了几个属性,这些属性可用于为不同对象类型的表示形式提供大小限制,并提供格式化特定对象类型的方法。

2.4 版的新Function:maxsetmaxfrozensetset

8.19.2. 子类化 Repr 对象

Repr.repr1()使用动态分派允许Repr的子类添加对其他内置对象类型的支持或修改已经支持的类型的处理。此示例说明如何添加对文件对象的特殊支持:

import repr as reprlib
import sys

class MyRepr(reprlib.Repr):
    def repr_file(self, obj, level):
        if obj.name in ['<stdin>', '<stdout>', '<stderr>']:
            return obj.name
        else:
            return repr(obj)

aRepr = MyRepr()
print aRepr.repr(sys.stdin)          # prints '<stdin>'
首页