一尘不染

Python __repr__的目的

python

def __repr__(self):
  return '<%s %s (%s:%s) %s>' % (
    self.__class__.__name__, self.urlconf_name, self.app_name,
    self.namespace, self.regex.pattern)

此方法的意义/目的是什么?


阅读 362

收藏
2020-02-21

共1个答案

一尘不染

__repr__应该返回对象的可打印表示形式,这很可能是创建该对象的一种可能方式。请参阅此处的官方文档。__repr__对于开发人员而言更多,而__str__对于最终用户而言则更多。

一个简单的例子:

>>> class Point:
...   def __init__(self, x, y):
...     self.x, self.y = x, y
...   def __repr__(self):
...     return 'Point(x=%s, y=%s)' % (self.x, self.y)
>>> p = Point(1, 2)
>>> p
Point(x=1, y=2)
2020-02-21