定义__repr __(self)将在python中动态创建

时间:2011-07-07 03:57:39

标签: python printing instance-variables

我有一个班级

class FooBar(object):
    def __repr__(self):
        pass

我希望实现__repr__功能。由于我使用FooBar作为一个方便的容器,我动态添加了一些属性,我也考虑动态生成__repr__。 (如果这是不好的实践,请解释并启发我: - ))

我想到了类似的东西:

def __repr__(self):
    return '<FooBar({WHAT IS ELEGANT AND GOES HERE?})>'.format(**self.__dict__)

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:1)

>>> '<FooBar({!r})>'.format({'a':1, 'b':2})
"<FooBar({'a': 1, 'b': 2})>"
在Python2.6上

你必须使用{0!r}

我认为

'<FooBar({!r})>'.format(vars(self))

比引用.__dict__

更好