pyhton __repr__
时间: 2023-10-29 15:54:06 浏览: 122
__repr__ 是 Python 中的一个魔术方法(magic method),用于返回对象的字符串表示形式。它通常被用于调试和显示对象信息。当我们使用内置函数 `repr()` 或者直接打印对象时,会调用对象的 __repr__ 方法来获取对象的字符串表示形式。
例如,假设我们有一个名为 `Person` 的类:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person(name='{self.name}', age={self.age})"
person = Person("Alice", 25)
print(person) # 调用 person.__repr__() 方法
```
输出结果将是:
```
Person(name='Alice', age=25)
```
通过在类中定义 `__repr__` 方法,我们可以自定义对象的字符串表示形式,以便更好地展示对象的属性和状态。
相关问题
python __repr__
回答: 在Python中,__repr__是一个内置方法,用于返回一个对象的字符串表示形式。它通常被用于调试时显示详细的对象信息,便于开发者使用。\[1\]如果你想在自定义类中实现“自我描述”的功能,那么必须重写repr方法。\[2\]返回值应该是一个字符串对象,类似于一种“官方”字符串表示,可以被用来重建具有相同取值的对象。\[3\]在交互环境下直接输入对象名、使用repr(对象)、直接调用"对象.repr()"方法以及列表和字典等容器总是会触发__repr__方法的调用。
#### 引用[.reference_title]
- *1* *3* [第8.13节 Python类中内置方法__repr__详解](https://blog.csdn.net/weixin_30399871/article/details/95152504)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [python 中的 __repr__() 方法](https://blog.csdn.net/weixin_45594025/article/details/121425343)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
python__repr__和__str__区别
__repr__和__str__都是Python中用于表示对象的方法,但是它们的作用不同。__repr__用于返回一个对象的“官方”字符串表示,而__str__用于返回一个对象的“非正式”或“友好”字符串表示。
__repr__方法返回的字符串应该是一个可以用来表示该对象的表达式,通常应该是一个可以用来创建该对象的字符串表达式。而__str__方法返回的字符串通常是一个更加友好和易读的字符串,用于打印或显示给终端用户。
以下是一个例子,展示了__repr__和__str__方法的区别:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return 'Person(name={}, age={})'.format(self.name, self.age)
def __str__(self):
return '{} - {}'.format(self.name, self.age)
p = Person('Alice', 25)
print(repr(p)) # 输出:Person(name=Alice, age=25)
print(str(p)) # 输出:Alice - 25
```
在上面的例子中,__repr__方法返回了一个可以用来创建该对象的字符串表达式,而__str__方法返回了一个更加友好和易读的字符串。
阅读全文
相关推荐














