Python 使用魔术方法 __str__ 来自定义对象的打印输出

Document 对象参考手册 Python3 实例

在 Python 中,魔术方法 __str__ 用于定义对象的字符串表示形式。当你使用 print() 函数打印对象时,或者使用 str() 函数将对象转换为字符串时,Python 会自动调用这个方法来获取对象的字符串表示。

下面是一个简单的例子,展示如何使用 __str__ 方法来自定义对象的打印输出。

实例

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

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

# 创建一个 Person 对象
person = Person("Alice", 30)

# 打印对象
print(person)

代码解析:

  1. __init__ 方法是类的构造函数,用于初始化对象的属性 nameage
  2. __str__ 方法定义了对象的字符串表示形式。在这个例子中,它返回一个格式化的字符串,包含对象的 nameage 属性。
  3. 当我们使用 print(person) 打印对象时,Python 会自动调用 __str__ 方法,并输出其返回的字符串。

输出结果:

Person(name=Alice, age=30)

通过自定义 __str__ 方法,你可以控制对象的打印输出,使其更具可读性和信息性。

Document 对象参考手册 Python3 实例