Allowing the repr() of my class's instances to

2019-05-26 11:37发布

Say I have defined a class myself and I defined a __repr__ method for it. I want to about convert it back to my object. I know that object serialization may be a good way of doing so (using the json module) but is there anyway I can use the built-in eval function to achieve this?

1条回答
女痞
2楼-- · 2019-05-26 12:19

Write your __repr__() so it creates a valid Python expression for instantiating your object.

class MyClass(object):
    def __init__(self, a, b):
        self.a = a
        self.b = b
    def __repr__(self):
        return "%s(%r, %r)" % (type(self).__name__, self.a, self.b)

Obviously this relies on the values you're using having their own reasonable repr().

You don't have to define any special eval()—just pass in whatever you get from repr().

查看更多
登录 后发表回答