迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中打印类的对象

作者:迹忆客 最近更新:2023/12/21 浏览次数:

在本教程中,我们将研究多种方法来在 Python 中打印类对象。假设我们要使用 print() 函数打印类实例,例如查看对象的数据或值。我们可以使用下面介绍的方法来做到这一点。


在 Python 中使用 __repr__() 方法打印一个对象

__repr__() 方法以字符串形式返回对象的可打印表示形式。默认情况下,它返回对象的类的名称和对象的地址。

当我们使用 print() 函数在 Python 中打印对象时,将调用对象的 __str__() 方法。如果未定义,则 __str__() 返回 __repr__() 方法的返回值。这就是为什么当我们尝试使用 print() 函数打印用户定义类的对象时,它返回 __repr__() 方法的返回值的原因。

因此,我们可以定义或覆盖 __repr__() 方法以打印对象的摘要或所需值。

假设我们有一个用户定义的类 ClassA,没有 __repr__() 方法,下面的示例代码演示了当我们尝试打印没有 __repr__() 方法的 ClassA 对象时的输出。

class classA:
    def __init__(self):
        self.var1 = 0
        self.var2 = "Hello"


A = classA()
print(A)

输出:

<__main__.classA object at 0x7fa29aa28c50>

由于我们尚未定义 __repr__() 方法,因此默认情况下它返回了类的名称和对象的地址。

现在,让我们定义类 classA__repr__() 方法,然后使用 print() 函数。print()print(repr()) 应该返回相同的值。

class classA:
    def __init__(self):
        self.var1 = 0
        self.var2 = "Hello"

    def __repr__(self):
        return "This is object of class A"


A = classA()
print(A)
print(repr(A))

输出:

This is object of class A
This is object of class A

在 Python 中使用 __str__() 方法打印一个对象

__str__() 方法返回 Python 中对象的字符串版本。如果对象不具有 __str__() 方法,则它返回与 __repr__() 方法相同的值。

我们在上面的示例代码中看到,如果未定义 __str__() 方法,则 print() 方法将使用 __repr__() 方法打印对象的可打印表示形式。

现在,让我们定义示例类 ClassA__str__() 方法,然后尝试使用 print() 函数打印 classA 的对象。print() 函数应返回 __str__() 方法的输出。

class classA:
    def __init__(self):
        self.var1 = 0
        self.var2 = "Hello"

    def __repr__(self):
        return "This is object of class A"

    def __str__(self):
        print("var1 =", self.var1)
        print("var2 =", end=" ")
        return self.var2


A = classA()
print(A)

输出:

var1 = 0
var2 = Hello

在 Python 中通过添加新的类方法打印对象

可以使用另一种方法来替代或定义类的 __str__()__repr__() 方法。可以在类中描述一个新的 print()方法,该方法将打印出我们选择的类属性或值。

下面的示例代码演示了如何定义然后使用 object.print() 方法来打印 Python 中的一个对象。

class classA:
    def __init__(self):
        self.var1 = 0
        self.var2 = True
        self.var3 = "Hello"

    def print(self):
        print("var1 =", self.var1)
        print("var2 =", self.var2)
        print("var3 =", self.var3)


A = classA()
A.var2 = False
A.print()

输出:

var1 = 0
var2 = False
var3 = Hello

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 中比较两个日期

发布时间:2023/12/22 浏览次数:166 分类:Python

本教程演示了 Python 中如何比较两个日期并检查哪个日期更大。本教程解释了如何在 Python 中比较两个日期。它有多种方法来确定哪个日期更大,所以教程还列出了不同的示例代码来阐述不同的

在 Python 中重新加载或取消导入模块

发布时间:2023/12/22 浏览次数:102 分类:Python

本教程演示了如何在 Python 中重新加载模块。模块允许我们在 Python 文件中存储不同函数和类的定义,然后这些文件可以在其他文件中使用。

在 Python 中暂停程序执行

发布时间:2023/12/22 浏览次数:190 分类:Python

本教程介绍了如何在 Python 中暂停程序。本教程将演示 Python 中暂停程序的各种方法。暂停程序的执行或应用在不同的场景下使用,比如当一个程序需要输入用户时。

从 Python 中的子目录导入模块

发布时间:2023/12/22 浏览次数:100 分类:Python

本教程演示了如何在 Python 中从子目录导入一个文件。本教程将讲解 Python 中从子目录导入模块的各种方法。假设我们在项目目录的子目录下有一个文件,我们想导入这个文件并在代码中使用它

Python 中的 if not 语句

发布时间:2023/12/22 浏览次数:146 分类:Python

本教程演示了在 Python 中使用 if not 语句。Python 中的 if 语句检查一个特定的条件,如果条件为真,则执行一个代码块。

在 Python 中生成随机质数

发布时间:2023/12/22 浏览次数:194 分类:Python

它演示了如何在 Python 中生成随机质数。本教程演示了在 Python 中生成和输出任何随机质数的方法。质数是在编程中使用的非常有用的常量,尤其是在密码学中。

在 Python 中将十六进制转换为十进制

发布时间:2023/12/22 浏览次数:184 分类:Python

本教程演示了如何在 Python 中把十六进制值转换为十进制值。在编程的世界里,我们处理属于不同数字系统的值。十六进制数就是这样一个系统。它被用于存储内存地址、IP 地址等。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便