在 Python 中打印类的对象
在本教程中,我们将研究多种方法来在 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
相关文章
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 中生成介于 0 和 1 之间的随机值
发布时间:2023/12/22 浏览次数:68 分类:Python
-
在 Python 中,可以使用 3 种主要方法来生成 0 到 1 之间的随机值:random.randint(),random.random()和 random.unique()函数。
在 Python 中转换十六进制字符串为 Int
发布时间:2023/12/22 浏览次数:60 分类:Python
-
它演示了如何在 Python 中把十六进制转换为整数。本教程将演示如何在 Python 中把十六进制字符串转换为 int。
在 Python 中将十六进制转换为十进制
发布时间:2023/12/22 浏览次数:184 分类:Python
-
本教程演示了如何在 Python 中把十六进制值转换为十进制值。在编程的世界里,我们处理属于不同数字系统的值。十六进制数就是这样一个系统。它被用于存储内存地址、IP 地址等。