Python的__repr__()方法可以得到一个实体或对象的文本或字符串描述。每当实体的repr()方法被调用时,这个过程被称为。你可以说 "repr "方法和"__repr__"可以互换使用,达到相同的目的。被还原的文本必须是一个合适的Python短语,如果可行的话,它将被castoff以重新组装实体。python的"__str__"函数也是这样做的,但这两个函数之间有一点区别。__str__方法被设计为产生一个人类可读的版本,对于跟踪或显示对象信息很有用。另一方面,__repr__方法被设计用来提供一个对象的 "官方 "文本图像,可以用来重新创建它。在我们今天的文章中,我们将集中讨论这两个关键的Python实体方法。让我们有一个新的开始。
例子01
打开你系统中的Python工具,也就是说,我们在这里使用Spyder 3。我们将先看一下简单的repr方法。我们的代码开始时,以一个字符串句子为值初始化了一个字符串变量。print函数被用来打印控制台变量 "string "值的字符串表示。为此,我们使用了 "repr "方法,并将字符串作为参数加入其中。之后,我们在一些数学表达式上应用了 "repr "函数,并试图通过相同的函数 "print "来打印它。现在让我们看一下输出结果。
string = 'Hy! I am John'
print (repr(string))
print (repr(5.0/11.0))

在下面显示的输出中,你可以看到repr方法同时显示了字符串值和数学表达式计算的字符串表示。

例02
让我们深入了解一下 "repr "和 "Str "函数,以清楚两者的区别。这一次,我们在python的日期和时间函数上应用这些字符串表示方法。为了在我们的代码中获得日期和时间,我们首先通过 "import "关键字导入了python的DateTime模块。因此,我们必须在代码中使用DateTime类的 "now() "函数,通过其包获得当前的日期和时间,并将当前的时间戳保存在 "td "变量中。现在,使用两个打印函数,在变量对象 "td "上使用"__str__"和"__repr__"函数以字符串格式打印当前日期和时间。代码已被保存并准备执行。
import datetime
td = datetime.datetime.now()
print(td.__str__())
print(td.__repr__())

在运行这段代码时,我们得到了两个不同的字符串结果。第一个结果是由"__str__"方法产生的,而且是非常容易理解的。而另一个是通过使用"__repr__"方法产生的,对我们来说是相当难理解的。

例子03
让我们来看看本文最后一个但也是最重要的一个例子。我们在代码中使用了一个用户定义的测试类。这个类定义并实现了它的构造函数,将 "姓名 "和 "工资 "保存在两个不同的变量中,即v1和v2。一个名为 "val "的对象被创建,用于将 "name "和 "salary "变量的两个值传递给测试函数构造器。对象 "val "的创建导致测试类的构造器自动运行。使用对象 "val "分别调用"__str__"和"__repr__"方法,并打印出结果。两个函数都没有得到任何结果,因为对象 "Val "刚刚被创建,并没有对它进行估值。它可能没有按照我们想要的方式回应我们。让我们来检查一下。
class Test:
def __init__(self, name, salary):
self.v1 = name
self.v2 = salary
val = Test('John', 50000)
print(val.__str__())
print(val.__repr__())

在这里,两个函数的默认执行是整个没有用的。现在让我们来实现这两个函数。

因此,在类的构造函数之后,我们分别实现了"__str__"和"__repr__"方法,返回一个文本的字符串格式。它还将分配给构造函数的值返回给调用线程,也就是 "val "对象。让我们先保存新更新的python代码,看看它的结果。
class Test:
def __init__(self, name, salary):
self.v1 = name
self.v2 = salary
def __str__(self):
return f'User name is {self.v1} and his/her salary is {self.v2}'
def __repr__(self):
return f'User(name={self.v1}, salary={self.v2})'
val = Test('John', 50000)
print(val.__str__())
print(val.__repr__())
print(val.__repr__())

第一个输出是由"__str__"方法引起的,很容易理解。另一个输出是可以理解的,但没有"__str__"函数输出那么多。

总结
这篇文章是关于在python代码中使用"__repr__"方法。我们还讨论了在本文中使用的"__str__"方法来比较函数之间的差异。这也将使你更清楚地理解"__repr__"方法。我们热切地希望这篇文章能够为我们的用户提供最好的python帮助。