滚动我自己的__repr__

时间:2009-10-23 12:12:28

标签: python

我想为我定义的某个类编写自己的__repr__。我希望它与默认的<__main__.O object at 0x00D229D0>类似,除了那里有一些其他细节。如何重现<__main__.O object at 0x00D229D0>事?

2 个答案:

答案 0 :(得分:5)

请参阅http://docs.python.org/reference/datamodel.html#object.repr

#!/usr/bin/env python
class O(object):
    def __repr__(self):
        return '<%s.%s object at 0x%x>'%(self.__module__,self.__class__.__name__,id(self))
o=O()
print(repr(o))

# <__main__.O object at 0xb7e7d0cc>

答案 1 :(得分:3)

你可以这样写自己的代表:

class Test (object):
  def __repr__(self):
    t = type(self)
    return "<Instance of %s.%s at %x>" % (t.__module__, t.__name__, id(self))