比< __ main __更漂亮的东西。在0x1624710处的MyClass实例>

时间:2011-12-01 22:13:23

标签: python class

这是我的班级(尽可能简单):

class MyClass():
    def __init__(self, id):
        self.id = id

    def __str__(self):
        return "MyClass #%d" % self.id

当我打印MyClass的对象时,我得到了这个漂亮的字符串:MyClass #id。但是当我在翻译中“显示”时,我仍然会感到讨厌<__main__...>。有没有办法改变这种行为?

>>> c = MyClass(5)
>>> print c
MyClass #5
>>> c
<__main__.MyClass instance at 0x1624710>

2 个答案:

答案 0 :(得分:10)

def __repr__(self):
    return 'MyClass #%d' % (self.id,)

答案 1 :(得分:1)

>>> class MyClass():
...     def __init__(self, id):
...         self.id = id
...     def __repr__(self):
...         return "MyClass #%d" % self.id
... 
>>> c = MyClass(5)
>>> c
MyClass #5