Python中這個_repr_函數,對應repr(object)這個函數,返回一個可以用來表示對象的可打印字符串:
-
嘗試生成這樣一個字符串,將其傳給 eval()可重新生成同樣的對象 ;
-
否則,生成用尖括號包住的字符串,包含類型名和額外的信息(比如地址) ;
-
一個類(class)可以通過 __repr__() 成員來控制repr()函數作用在其實例上時的行為。
代碼例子如下:
>>> 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中,有的操作符和函數是做同樣的事情,原因是某些場合下函數會比操作符更適合使用,比如函數對象可作為參數傳遞。