当我们在交互环境下输入对象时会直接显示对象的信息,交互环境下输入print(对象)或代码中print(对象)也会输出对象的信息,这些输出信息与两个内置方法:__str__方法和__repr__方法有关,这两个方法Python中的所有类型(新式类)的基类object中实现了这个通用的功能,本节详细分析__repr__方法。
一、 object类内置方法__repr__和函数repr
类的内置方法__repr__和内置函数repr实际上实现的是同一功能,实际上repr调用的就是__repr__方法,只是调用方式不同,二者调用的语法如下:
实例对象. repr()
repr(对象)
返回值为一个字符串对象,该字符串对象类似一种“官方”字符串表示,为什么说是”官方”呢,这是因为Python建议大部分情况下这个字符串应类似一个有效的 Python 表达式,能被用来重建具有相同取值的对象。如做不到至少应返回形如 <…someuseful description…>的字符串信息。 此方法通常被用于调试时显示详细的对象信息,便于开发者使用,因此需要尽可能确保其包含丰富完整的信息且无歧义。
二、 __repr__和函数repr方法的使用
由于object类定义了__repr__方法,因此所有类都会继承该方法,除非有自定义类重写了该方法。
什么情况下会触发__repr__方法呢?主要有如下情况会触发__repr__的调用:
- 在交互环境下直接输入对象名查看对象内容;
- 使用repr(对象)名查看对象内容ÿ