26 Jun 2017
repr是python的内置函数,repr 就是通过__repr__这个特殊方法来得到一个对象的字符串表示形式的。
如果我们自定义一个对象没有__repr__方法的话,我们无法通过print函数来打印它。
__repr__没有__repr__时,打印出来的是object的内存信息
class Hometown(object): def __init__(self): pass myhome = Hometown() print myhome <__main__.Hometown object at 0x7feab4816410>
自定义__repr__后,我们可以控制打印的内容
class Hometown(object): def __init__(self): pass def __repr__(self): return "BeiJing" myhome = Hometown() print myhome BeiJing
__repr__ vs __str____repr__ 的目标是明确__str__ 的目标是可读如果你只想实现这两个特殊方法中的一个,__repr__ 是更好的选择,因为如果一个对象没有 __str__ 函数,而 Python 又需要调用它的时候,解释器会用 __repr__ 作为替代。
https://stackoverflow.com/questions/1436703/difference-between-str-and-repr-in-python