详解Python 类的__repr__方法转换字符串

  • Post category:Python

Python中的类定义了数据和方法,用于表示和操作该类对象。当我们需要将一个对象转换为字符串时,可以使用__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类,它有两个属性:nameage。在__repr__方法中,我们定义了一个字符串来表示这个类对象,以便在需要打印对象时使用。

下面是一个小示例,说明如何使用上述代码片段中定义的Person类:

person1 = Person("Alice", 30)
print(person1)

在这个示例中,我们实例化了一个Person对象,并将其作为参数传递给print函数。输出结果是:

Person(name='Alice', age=30)

我们可以看到,输出的字符串是由__repr__方法生成的。

除此之外,我们还可以覆盖__str__方法。与__repr__类似,__str__方法也返回一个字符串,用于表示该类的实例对象。不过,__str__方法主要用于友好的打印输出,而__repr__方法则更多地用于调试。

这是一个演示如何使用__str__方法的示例:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return f"Person {self.name}, age {self.age}"

person1 = Person("Alice", 30)
print(person1)

输出结果是:

Person Alice, age 30

这里我们使用print()函数打印了对象。由于我们已经定义了__str__方法,因此输出结果是由__str__方法返回的字符串。

这就是Python中使用__repr____str__方法来转换类对象字符串的基本原理和示例。