python 自定义对象的打印方法

为了更好地理解并且美观地展示我们定义的Python对象,我们可以自定义对象的打印方法。

在Python中,我们可以使用__str__()__repr__()方法来实现自定义对象的打印方法。

  • __str__()方法:返回字符串——对象的“友好”描述。当我们调用内置的print()方法时,就会默认调用__str__()方法。
  • __repr__()方法:返回字符串——对象的“开发者友好”描述。在开发中,我们通常使用这个方法来打印带有调试信息的对象。

下面是一个示例:

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

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

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

在上面的例子中,我们定义了一个Person类,将人的名字和年龄存储在该类的属性中。然后,我们定义了__str__()__repr__()方法来定制该类的打印方式。

p1 = Person("Tom", 25)
print(p1)   # Name: Tom, Age: 25
print(repr(p1))   # Person(Tom, 25)

在这个例子中,我们创建了一个Person对象并调用print()方法。此时,__str__()方法被调用,返回了像“Name: Tom, Age: 25”这样的字符串。

另一方面,我们调用repr()方法,__repr__()方法会被调用并返回想要打印的内容。在上面的例子中,我们返回了像“Person(Tom, 25)”这样的字符串。

另一个示例:

class Book:
    def __init__(self, title, author, price):
        self.title = title
        self.author = author
        self.price = price

    def __str__(self):
        return f"{self.title}, by {self.author}, ${self.price}"

    def __repr__(self):
        return f"Book('{self.title}', '{self.author}', '{self.price}')"

在这个例子中,我们定义了一个Book类,该类存储有关一本书的信息(书名,作者和价格)。然后,我们定义了__str__()__repr__()方法来控制如何打印该类的内容。

b1 = Book("Python for Beginners", "John Smith", 25.99)
print(b1)   # Python for Beginners, by John Smith, $25.99
print(repr(b1))   # Book('Python for Beginners', 'John Smith', '25.99')

在这个例子中,我们创建了一个Book对象并调用print()方法。__str__()方法被调用并返回像“Python for Beginners, by John Smith, $25.99”这样的字符串。

另一方面,我们调用repr()方法,__repr__()方法会被调用并返回想要打印的内容。在上面的例子中,我们返回了像“Book('Python for Beginners', 'John Smith', '25.99')”这样的字符串,其中的单引号可以确保该字符串可以被Python直接解释。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 自定义对象的打印方法 - Python技术站

(0)
上一篇 2023年6月5日
下一篇 2023年6月5日

相关文章

  • Python第三方库安装教程、什么是第三方库

    Python有一个全球社区:https://pypi.org/,在这里我们可以搜索任何主题的Python第三方库。PyPI全称是Python Package Index,指的是Python包的索引,它由PSF(Python Software Foundation)来维护,并且展示全球Python计算生态。 我们需要学会利用PyPI的主站检索,找到我们使用和关…

    python 2023年5月8日
    00
  • 基于Python实现RLE格式分割标注文件的格式转换

    下面我将详细讲解“基于Python实现RLE格式分割标注文件的格式转换”的完整攻略。 一、RLE格式分割标注文件是什么? RLE格式是一种更加高效的图像语义分割数据表示格式,其数据以一串RLE编码的方式进行存储,而不是以像素点的形式存储,有效减少了数据的体积。RLE格式分割标注文件即是使用RLE格式对物体分割区域进行标注的文件。 二、RLE格式分割标注文件的…

    python 2023年5月20日
    00
  • python中字符串比较使用is、==和cmp()总结

    Python中字符串比较有三种方式:is、==和cmp()。接下来我们来详细讲解这三种方式的使用以及它们之间的区别。 字符串比较使用 is is是Python中的一种运算符,用于比较两个对象的内存地址是否相同。使用is来比较两个字符串时,如果两个字符串的内存地址相同,那么返回True,否则返回False。 例如,我们定义两个字符串,然后将它们分别赋值给两个变…

    python 2023年6月5日
    00
  • 常用python编程模板汇总

    常用Python编程模板汇总 – 完整攻略 概述 编程模板是在开始编写代码之前制定的计划,可大大减少代码错误和增加代码的可读性。本文将列出一些常用的Python编程模板,方便大家学习和使用。 模板一:输入输出模板 下面是一个常用的Python输入输出模板,可用于循环读取并处理多组数据。 while True: try: n = input() # 根据具体需…

    python 2023年5月19日
    00
  • 详细介绍python类及类的用法

    详细介绍Python类及类的用法 在Python中,类是一种面向对象编程的重要概念,它将数据和相应的操作封装在一起,实现代码的重用和封装性。本文将详细介绍Python类及类的用法,包括如何创建类、类的成员变量和成员方法、构造函数和析构函数、继承和多态的实现方法等内容。 创建类 在Python中,使用 class 关键字可以创建一个类,一个类中可以包含多个成员…

    python 2023年5月13日
    00
  • python pycurl验证basic和digest认证的方法

    下面我来详细讲解一下“python pycurl验证basic和digest认证的方法”的完整攻略。 1. 安装pycurl 要使用pycurl进行认证,首先需要在Python环境中安装pycurl库。可以使用pip命令进行安装: pip install pycurl 2. 使用pycurl进行basic认证 以下是使用pycurl进行basic认证的代码示…

    python 2023年6月3日
    00
  • Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能

    Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能,需要使用到Python的并发编程模块threading和requests库。下面是实现该功能的具体步骤: 安装requests库 pip install requests 导入必要的模块 import threading import requests import time …

    python 2023年5月18日
    00
  • PyQt5每天必学之弹出消息框

    我来详细讲解一下“PyQt5每天必学之弹出消息框”的完整攻略。 弹出消息框 弹出消息框是GUI应用程序中一个常见的功能。在PyQt5中,我们可以使用QMessageBox类来实现弹出消息框的效果。QMessageBox提供了几种不同的消息框类型,包括信息框、警告框、错误框等。 下面是一个简单的示例,演示如何弹出一个信息框: from PyQt5.QtWidg…

    python 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部