一、 object类内置方法__str__和函数str
类的内置方法__str__和内置函数str实际上实现的是同一功能,实际上str调用的就是__str__方法,只是调用方式不同,二者的调用语法如下:
实例对象. str()
str(对象)
返回值为一个字符串对象,该字符串对象类似一种非正式的字符串表示,为什么说是” 非正式”呢,这是因为Python对这个返回值没有特殊要求,只要求是对用户信息好理解。 此方法因此通常被用于与最终用户交互时的显示信息,str 的意义是得到便于人们阅读的信息,因此需要尽可能确保其包含的信息便于理解。
二、 __str __方法和函数str方法的使用
由于object类定义了__str__方法,因此所有类都会继承该方法,除非有自定义类重写了该方法。
什么情况下会触发__str__方法呢?主要有如下情况会触发__str__的调用:
- 在交互环境下直接输入str(对象名)查看对象内容;
- print(对象)查看对象内容时
- 直接调用“对象.str()”方法;
- 由于列表以及字典等容器总是会使用 repr 方法,即使调用__str__方法访问输出的还是__repr__访问内容。
本节介绍了__str __方法和函数str方法,由于它们的输出信息是面向最终用户的,便于人们阅读,因此老猿建议__str__方法在自定义类中进行重写,以便于输出用户需要的信息。本节没有举例介绍相关内容,因为如果不重写该方法,相关案例与__repr__方法没有差异,因此在后面的重写__str__方法的相关章节介绍案例。