Катаюсь мой __repr__ - PullRequest
       8

Катаюсь мой __repr__

1 голос
/ 23 октября 2009

Я хочу написать свой __repr__ для некоторого класса, который я определяю. Я хочу, чтобы это было похоже на значение по умолчанию <__main__.O object at 0x00D229D0>, за исключением того, что там есть несколько других деталей. Как мне воспроизвести эту <__main__.O object at 0x00D229D0> вещь?

Ответы [ 2 ]

5 голосов
/ 23 октября 2009

См. 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>
3 голосов
/ 23 октября 2009

Вы можете написать свой собственный repr как это:

class Test (object):
  def __repr__(self):
    t = type(self)
    return "<Instance of %s.%s at %x>" % (t.__module__, t.__name__, id(self))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...