📜  在Python中打印类的对象(1)

📅  最后修改于: 2023-12-03 14:51:20.935000             🧑  作者: Mango

在Python中打印类的对象

在Python中打印类的对象是一项非常基础的技能,也是面向对象编程中的必备技能。打印对象的好处是可以检查对象的参数或属性是否正确,以及可以观察对象在程序运行过程中的状态。

1. 使用print()函数打印对象

使用print()函数可以打印对象的值,以及对象的类型信息。

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

p = Person("Tom", 18)
print(p)             # <__main__.Person object at 0x7fb469e8cd30>
print(p.name)        # Tom
print(p.age)         # 18

在上面的示例中,我们定义了一个Person类,然后实例化出一个p对象。我们可以通过使用print()函数打印这个对象,得到的结果是一个十六进制地址。这是因为对象在内存中的存储方式,所以我们可以通过其他方法来打印对象的属性。

2. 定义__str__()方法

在Python中,通过定义__str__()方法可以自定义打印对象时的输出信息。

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

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

p = Person("Tom", 18)
print(p)             # Person: Tom - 18
3. 定义__repr__()方法

通过定义__repr__()方法可以返回可执行的字符串,表示对象的含义。

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

    def __repr__(self):
        return "Person('{}', {})".format(self.name, self.age)

p = Person("Tom", 18)
print(p)             # Person('Tom', 18)
4. 结合__str__()和__repr__()方法

结合__str__()和__repr__()方法可以在控制台以更详细的方式显示对象信息。

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

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

    def __repr__(self):
        return "Person('{}', {})".format(self.name, self.age)

p = Person("Tom", 18)
print(p)             # Person: Tom - 18
print(repr(p))       # Person('Tom', 18)

通过上面的介绍,我们学习了如何在Python中打印类的对象。无论是使用print函数打印对象的值和类型信息,还是通过定义__str__()和__repr__()方法来自定义打印对象的信息,都是面向对象编程中的基础知识点。