了解 Python 的 __repr__ 方法
什么是 __repr__
?
官方定义:
__repr__
的主要目标是为开发者提供对象的准确描述,这个描述最好能被 eval() 函数直接执行以创建同样的对象。
class Car:
def __init__(self, brand, model):
self.brand = brand
self.model = model
def __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 = name
self.age = age
def __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 表达式的语法格式。