对象表示形式
每门面向对象的语言至少都有一种获取对象的字符串表示形式的标准方
式。Python 提供了两种方式。
- repr()
以便于开发者理解的方式返回对象的字符串表示形式。 - str()
以便于用户理解的方式返回对象的字符串表示形式。
正如你所知,我们要实现__repr__ 和__str__ 特殊方法,为 repr()
和 str() 提供支持。
为了给对象提供其他的表示形式,还会用到另外两个特殊方
法:bytes 和__format__。bytes 方法与__str__ 方法类
似:bytes() 函数调用它获取对象的字节序列表示形式。而__format__ 方法会被内置的 format() 函数和 str.format() 方法调
用,使用特殊的格式代码显示对象的字符串表示形式。我们将在下一个
示例中讨论__bytes__ 方法,随后再讨论__format__ 方法。
如果你是从 Python 2 转过来的,记住,在 Python 3
中,repr,__str__和__format__都必须返回 Unicode 字
符串(str 类型)。只有__bytes__方法应该返回字节序列
(bytes 类型)。