假设我自己定义了一个类,并为其定义了__repr__
方法。我想将它转换回我的对象。我知道对象序列化可能是一种很好的方法(使用json
模块),但无论如何我可以使用内置的eval
函数来实现这一点吗?
答案 0 :(得分:4)
编写__repr__()
,以便创建一个有效的Python表达式来实例化对象。
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)
显然,这依赖于您使用的值,并且具有合理的repr()
。
您无需定义任何特殊eval()
- 只需传递repr()
中的任何内容。