了解 Python 的 __repr__ 方法
- 什么是` __repr__`?
- ` __repr__` 的作用和使用
什么是 __repr__
?
官方定义:
__repr__
的主要目标是为开发者提供对象的准确描述,这个描述最好能被 eval() 函数直接执行以创建同样的对象。
class Car:def __init__(self, brand, model):self.brand = brandself.model = modeldef __repr__(self):return f"Car(brand='{self.brand}', model='{self.model}')"# 创建对象
car = Car("Toyota", "Corolla")# 打印 __repr__ 表示
print(repr(car)) # 输出: Car(brand='Toyota', model='Corolla')# 交互式环境下直接输入对象名时,默认调用 __repr__
car # 输出: Car(brand='Toyota', model='Corolla')
在这个例子中,__repr__
返回了一个能够完整描述 Car 对象的字符串。如果你把这个字符串复制粘贴到 Python 代码中,它可以通过 eval() 函数来重新生成这个对象。
__repr__
的作用和使用
__repr__
方法的主要目的是让开发者能够快速而准确地了解对象的状态。它不仅展示对象当前的数据,还提供了足够的信息来重建这个对象。
要为你的类定义 __repr__
方法,你只需在类中编写这个方法,并返回一个能够完整描述该对象的字符串表示。
class Person:def __init__(self, name, age):self.name = nameself.age = agedef __repr__(self):return f"Person(name='{self.name}', age={self.age})"# 创建对象
person = Person("Alice", 25)# 调用 __repr__
print(repr(person)) # 输出: Person(name='Alice', age=25)
在这个例子中,Person 类的 __repr__
方法返回一个描述该对象的字符串。这种描述不仅提供了对象的内部状态,还遵循了 Python 表达式的语法格式。