__repr__和__str__方法的区别
时间: 2024-02-28 22:50:36 浏览: 25
__repr__和__str__都是Python中的特殊方法,用于定制对象的字符串表示形式。它们之间的区别如下:
1. __repr__方法:
- 作用:返回一个对象的“官方”字符串表示形式,通常用于调试和开发阶段。
- 调用方式:通过内置函数repr()或者直接在对象上调用__repr__()方法。
- 返回值:应该是一个能够准确地表示对象的字符串,可以用来重新创建该对象。
- 示例代码:
```python
class MyClass:
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return f"MyClass(x={self.x}, y={self.y})"
obj = MyClass(1, 2)
print(repr(obj)) # 输出:MyClass(x=1, y=2)
```
2. __str__方法:
- 作用:返回一个对象的“友好”字符串表示形式,通常用于用户可读的输出。
- 调用方式:通过内置函数str()或者直接在对象上调用__str__()方法。
- 返回值:应该是一个易于理解和阅读的字符串,不一定能够准确地表示对象。
- 示例代码:
```python
class MyClass:
def __init__(self, x, y):
self.x = x
self.y = y
def __str__(self):
return f"MyClass object (x={self.x}, y={self.y})"
obj = MyClass(1, 2)
print(str(obj)) # 输出:MyClass object (x=1, y=2)
```
总结:
- __repr__方法返回的字符串应该是能够准确地表示对象的,通常用于调试和开发阶段。
- __str__方法返回的字符串应该是易于理解和阅读的,通常用于用户可读的输出。