__str__和__repr__的区别
时间: 2024-03-25 07:33:23 浏览: 16
__str__和__repr__都是Python中的特殊方法,用于定制对象的字符串表示形式。它们的区别如下:
1. __str__方法:
- 作用:用于返回对象的可读性好的字符串表示形式,通常用于打印对象或者在交互式环境中显示对象。
- 调用方式:通过内置函数str()或者print()来调用。
- 示例代码:
```python
class Person:
def __init__(self, name):
self.name = name
def __str__(self):
return f"Person: {self.name}"
p = Person("Alice")
print(p) # 输出:Person: Alice
```
2. __repr__方法:
- 作用:用于返回对象的官方字符串表示形式,通常包含创建该对象的Python表达式,可以用于重新创建该对象。
- 调用方式:通过内置函数repr()来调用,或者在交互式环境中直接输入对象名。
- 示例代码:
```python
class Person:
def __init__(self, name):
self.name = name
def __repr__(self):
return f"Person('{self.name}')"
p = Person("Alice")
repr(p) # 输出:Person('Alice')
```