Python打印魔法:优雅展示类实例,一招重写__str__方法搞定

作者:微信公众号:【架构师老卢】
12-21 14:1
47

概述:在Python中,使用print()函数打印类的实例可以通过直接调用,但输出默认是类名和内存地址。通过重写__str__方法,使输出更友好可读。示例展示了两种打印方式,帮助开发者了解如何定制类实例的输出

在Python中,可以通过print()函数来打印类的实例。以下是一个详细讲解和相应实例代码:

class Car:
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year

    def display_info(self):
        return f"{self.year} {self.make} {self.model}"

# 创建Car类的实例
my_car = Car("Toyota", "Camry", 2022)

# 打印类的实例
print("打印类的实例:", my_car)

# 在类中重写__str__方法,以便使用print()打印更友好的信息
class CarWithStrMethod:
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year

    def __str__(self):
        return f"{self.year} {self.make} {self.model}"

# 创建CarWithStrMethod类的实例
my_car_with_str_method = CarWithStrMethod("Ford", "Mustang", 2023)

# 打印重写__str__方法后的类的实例
print("打印重写__str__方法后的类的实例:", my_car_with_str_method)

说明:

  • 基本打印类的实例: 直接使用print()函数打印类的实例会输出默认的对象表示,通常是类名和内存地址。

  • 重写__str__方法: 为了更友好地打印类的实例,可以在类中重写__str__方法,该方法返回一个描述对象的字符串。这样,在使用print()打印对象时,就会调用__str__方法并显示其返回值。

通过以上示例,你可以清楚地了解如何使用print()函数打印类的实例,并通过重写__str__方法使输出更具可读性。