代码之家  ›  专栏  ›  技术社区  ›  Ram Rachum

滚动我自己的__

  •  1
  • Ram Rachum  · 技术社区  · 15 年前

    我想自己写 __repr__ 对于我定义的类。我希望它类似于默认值 <__main__.O object at 0x00D229D0> ,不过还有其他一些细节。我该如何重现 <_位于0x00D229d0的主对象> 事情?

    2 回复  |  直到 15 年前
        1
  •  5
  •   unutbu    15 年前

    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>
    
        2
  •  3
  •   u0b34a0f6ae    15 年前

    你可以这样写自己的RPR:

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