了解 Python 的 __repr__ 方法

了解 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 表达式的语法格式。

猜你喜欢

转载自blog.csdn.net/summerriver1/article/details/142740390