如何在 Python 中打印一个类的对象

在 Python 中,我们可以通过特殊方法__str____repr__来定义在打印对象时所要输出的内容。这些方法是预定义的函数,可以被类重载以提供特定的输出。

下面我们来举个例子。假设我们有一个名为Person的类,用来表示一个人的基本信息。我们可以使用__str__方法来定义每个Person对象的输出格式。具体代码如下:

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

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

bob = Person("Bob", 25)
print(bob)

输出结果为:

Person: Bob, 25 years old

通过定义了__str__方法,我们可以看到输出方便地展示了这个人的基本信息。

如果我们想要以更详细的方式来打印一个Person对象,我们可以使用__repr__方法来定义输出。因为该方法打印出来的信息应该足够详尽,便于我们在实际应用中调试,因此,通过使用__repr__方法可以得到更有用的输出结果。

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

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

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

bob = Person("Bob", 25)
print(repr(bob))

输出结果为:

Person(name=Bob, age=25)

在这个例子中,我们现在可以看到Person对象的详细信息,并且我们可以在调试的时候很方便地了解关于该对象的信息。

实际上,Python 支持许多其他特殊方法和内置函数,以便在对象构建和操作时提供各种自定义行为。

同时需要注意的是,尽管类定义中的方法名称以两个下划线开头和结尾,但它们并不是保护方法或私有方法。如果需要保证方法不被外部使用,需要更严格的访问控制策略。

总之,通过使用__str____repr__方法,可以方便地在 Python 中打印对象并获得有用的信息。同时也可根据实际应用需要,使用其他自定义行为和方法。