Python中的__repr__()方法

2024年1月10日修改
在Python中,__repr__() 是一个特殊方法(magic method),用于定义对象的字符串表示形式。当你调用内置函数 repr() 或使用 str() 函数来获取对象的字符串表示时,实际上是调用了对象的 __repr__() 方法。
下面是一个简单的例子,演示了 __repr__() 的用法:
代码块
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 = Person("Alice", 30)
# 调用repr()函数获取对象的字符串表示
representation = repr(person)
# 输出结果
print(representation) # 输出 Person(name=Alice, age=30)
在这个例子中,Person 类实现了 __repr__() 方法,返回一个字符串,描述了 Person 对象的属性。当我们调用 repr(person) 时,实际上就是调用了 person.__repr__()
在实际开发中,实现 __repr__() 方法对于调试和日志记录非常有用。它提供了一个人类可读的字符串表示形式,有助于理解对象的状态。当你在交互式环境中输入对象名称并按回车时,也会调用 __repr__() 方法显示对象的字符串表示。
需要注意的是,__repr__() 方法应该返回一个字符串,这个字符串应该是一个可以通过 eval() 函数重新创建相同对象的表达式。如果没有定义 __repr__() 方法,Python 会尝试调用 __str__() 方法来获取对象的字符串表示,如果也没有定义 __str__(),则会返回默认的字符串表示。