在 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
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串