Python 爬阶梯 | 为什么要在你的 Class 里面定义 __repr__ 方法?

很多时候我们需要去创建一些自定义对象,当我们实例化对象之后,时常需要去获取这个实例的信息,我们来看看这样一个老生常谈的 Class :

当我们想要获取 handsomeb 的信息的时候呢,我们会这样去操作:

在这里我们通过 print 方法去打印这个实例,得到的结果是这个对象的内存地址值,我们无法获取对象本身的值。

那么如果直接通过对象名称在解释器中运行,会得到什么样的结果呢?

可以看到,我们得到的结果是一样的,那么如果我们想要获取对象具体的值,可能你会这么操作:

__str__

这样的操作虽然可以,但并不是很方便,有一种比较 Pythonic 的写法是在我们定义 Class 的时候,先定义好 __str__ 方法,从而能够让我们更加方便的输出实例的值,像这样定义:

本文隐藏内容 登陆 后才可以浏览
ok,以上就是 __str__ 和 __repr__ 的具体使用以及区别。

发表回复