Python中这个_repr_函数,对应repr(object)这个函数,返回一个可以用来表示对象的可打印字符串:
-
尝试生成这样一个字符串,将其传给 eval()可重新生成同样的对象 ;
-
否则,生成用尖括号包住的字符串,包含类型名和额外的信息(比如地址) ;
-
一个类(class)可以通过 __repr__() 成员来控制repr()函数作用在其实例上时的行为。
代码例子如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
>>>
class
D(
object
):
...
def
__str__(
self
):
...
return
"a __str__"
...
def
__repr__(
self
):
...
return
"a __repr__"
...
>>> dr
=
D()
>>>
print
dr
a __str__
>>> dr
a __repr__
>>>
"%s"
%
dr
'a __str__'
>>>
"%r"
%
dr
'a __repr__'
|
Python中,有的操作符和函数是做同样的事情,原因是某些场合下函数会比操作符更适合使用,比如函数对象可作为参数传递。