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 经典贪心算法之Prim算法案例详解

    Sure, I’d be happy to help! Here is a detailed guide on the Prim algorithm in Python, including two examples: Introduction to Prim Algorithm Prim’s algorithm is a greedy algorithm …

    python 2023年5月14日
    00
  • Python/Pandas:根据共同的行标识符和唯一的行列组合从不同的数据帧中划分数字列

    【问题标题】:Python/Pandas: Divide numeric columns from different dataframes based on a common row identifier and unique row-col combinationPython/Pandas:根据共同的行标识符和唯一的行列组合从不同的数据帧中划分数字列 【…

    Python开发 2023年4月5日
    00
  • 从头学Python之编写可执行的.py文件

    下面是完整攻略: 编写可执行的.py文件 什么是可执行的.py文件 可执行的.py文件指的是能够直接运行的Python程序,类似于Windows中的.exe文件。我们通常需要将我们编写的.py文件转化为可执行的二进制文件(如.exe、.app、.apk)以便于在不安装Python环境的电脑上运行。 如何编写可执行的.py文件 方法一:使用pyinstalle…

    python 2023年5月19日
    00
  • 用Numpy实现sigmoid函数

    下面我将为您详细讲解使用Numpy实现sigmoid函数的完整攻略。 1. Sigmoid函数的定义 Sigmoid函数是一种常用的激活函数,定义为: $$sigmoid(x)=\frac{1}{1+e^{-x}}$$ 2. Numpy实现 在Python中,我们可以使用Numpy库来实现sigmoid函数。 2.1 导入Numpy库和math库 我们需要导…

    python-answer 2023年3月25日
    00
  • 使用pickle存储数据dump 和 load实例讲解

    使用pickle模块可以将Python中的复杂数据类型,如字典、列表等,转换为二进制文件或字符串进行存储和传输。其中,dump操作将Python数据序列化为二进制文件,load操作将二进制文件反序列化为Python数据类型。接下来,我们介绍如何使用pickle实现数据的dump和load操作。 使用pickle进行数据dump操作 import pickle…

    python 2023年6月2日
    00
  • Python爬虫爬取网站图片

    Python爬虫爬取网站图片的完整攻略 本攻略将介绍如何使用Python爬虫爬取网站图片。以下是一个示例代码演示如何使用Python和requests库爬取网站图片: import requests import os # 请求URL url = ‘https://www.example.com/images/’ # 发送请求 response = requ…

    python 2023年5月15日
    00
  • Python3.2模拟实现webqq登录

    下面是“Python3.2模拟实现webqq登录”的完整攻略,主要分为以下几步: 准备工作 安装Python 3.2及以上版本,并配置好环境变量。 安装requests模块,这个模块是用来发送HTTP请求的,可以通过pip安装: pip install requests 获取WebQQ登录所需的一些参数,主要有以下几个: ptwebqq:通过访问https:…

    python 2023年6月3日
    00
  • Python实现中文数字转换为阿拉伯数字的方法示例

    以下是“Python实现中文数字转换为阿拉伯数字的方法示例”的完整攻略。 背景介绍 在中文语境下,我们经常会遇到将中文数字转换成阿拉伯数字的需求,如将“一千零二十五”转换为1025。本文将介绍如何使用Python实现中文数字转换为阿拉伯数字的方法示例。 代码示例 方法一 我们可以使用Python中的Cn2An库来实现中文数字转换为阿拉伯数字。代码如下: fr…

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