python 自定义对象的打印方法

yizhihongxing

为了更好地理解并且美观地展示我们定义的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中使用NumPy计算给定复数根的Hermite_e数列的根

    要计算给定复数根的Hermite_e数列的根,可以使用NumPy中的hermite_e函数。该函数的参数为n,代表需要计算的Hermite_e数列的第n项,以及x,代表复数根。 以下是使用NumPy计算给定复数根的Hermite_e数列的根的完整攻略: 引入NumPy库 import numpy as np 设定复数根 x = np.array([1 + 2…

    python-answer 2023年3月25日
    00
  • Python tkinter实现桌面软件流程详解

    让我来详细讲解一下“Python tkinter实现桌面软件流程详解”的完整攻略。 什么是Python tkinter Python tkinter是Python自带的一个GUI库,利用这个库可以开发出简单的桌面软件。它有很多的组件,如Button、Label、Entry等,可以方便地实现窗口界面的设计。 Python tkinter实现桌面软件流程 步骤一…

    python 2023年6月13日
    00
  • python同步windows和linux文件

    要将Windows和Linux之间的文件同步,我们可以选择使用Python编写一个脚本,通过网络传输将文件从一台计算机复制到另一台计算机上。以下是一个Python脚本示例,演示如何同步两台计算机之间的文件: Step1: 安装必要的Python模块 该脚本使用了“paramiko”和“scp”模块,可以通过以下命令在Linux上安装这些模块: pip ins…

    python 2023年5月20日
    00
  • 谈谈python中GUI的选择

    让我来详细讲解一下“谈谈Python中GUI的选择”的完整攻略。 什么是GUI 首先,我们需要了解一下什么是GUI。简单来说,GUI全称为图形用户界面(Graphical User Interface),是一种应用程序界面的方法,使用图形、图像和文字等方法,代替了传统的字符命令行界面。也就是说,利用GUI,我们可以更直观地进行交互式操作。 Python中的G…

    python 2023年6月13日
    00
  • 通过python爬虫赚钱的方法

    通过Python爬虫赚钱的方法 Python爬虫是一种非常强大的工具,可以帮助我们获取互联网上的各种数据。通过Python爬虫,我们可以获取并分析大量的数据,从而找到商机,实现收益。下面是通过Python爬虫赚钱的一些方法和技巧。 1. 数据商业化 通过Python爬虫可以获取各种各样的数据,我们可以将这些数据进行整理分析,然后将分析报告、行业研究等推广出去…

    python 2023年5月14日
    00
  • 深入了解python列表(LIST)

    深入了解Python列表(LIST) 在Python中,列表(list)是一种常用的数据类型,它可以存储多个元素,并且支持动态容。除了基本的增删改查操作,列表还有一些高级操作,例如列表的推导式、列表的嵌套、列表的迭代等。本文将深入讲解Python中列表的高级操作方法,包括的列表的推导式、列表的嵌套、列表的迭代等方面,并介绍一些实用技巧。 列表的推导式 在Py…

    python 2023年5月13日
    00
  • Python数据结构与算法之链表,无序链表详解

    Python数据结构与算法之链表,无序链表详解 介绍 链表是一种基础的数据结构,是由一系列节点组成的线性结构。它的每个节点都包括两个部分,一个是存储数据的部分,另一个是指向下一个节点的部分。链表有很多种不同的形式,其中无序链表是其中最基础同时也是最简单的一种。无序链表可以用于存储任意类型的数据,不同于数组,它没有固定的大小限制。 实现无序链表的基本结构 链表…

    python 2023年5月14日
    00
  • Python常用模块之threading和Thread模块及线程通信

    Python常用模块之threading和Thread模块及线程通信 简介 Python中可以使用Thread模块和threading模块来创建线程。其中Thread模块是低级模块,用于低级别的线程控制,而threading模块是高级模块,对Thread模块进行了封装,使得线程更加方便使用。本文将对这两个模块进行详细讲解,并讨论线程之间是如何进行通信的。 基…

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