python魔法方法__str__ 和 __repr__的区别

在python3中,所有类的父类object类实现了__str__和__repr__两个魔法方法,那么这两个方法究竟有什么用呢

下面我们用代码来演示以下

>>> class A:
...     def __str__(self):
...         return '1'
...     def __repr__(self):
...         return '2'
...
>>> a = A()
>>> a
2
>>> print(a)
1

从以上打印结果可以看出:

当我们打印实例对象的时候,会调用__str__方法;该方法主要用于对用户进行输出展示

当我们调用实例对象的时候,会调用__repr__方法;该方法主要用于程序员自己调试观测

tips: 

1.这两个方法的返回值都必须是字符串类型

2.如果__str__方法未重写,而__repr__方法已重写,那么当打印实例对象的时候,会自动调用__repr__方法

猜你喜欢

转载自blog.csdn.net/baidu_28289725/article/details/81866300