仅在@dbr的答案中添加两分钱,以下是如何实现他引用的官方文档中的这个句子的示例:
"[...] 要返回一个字符串,该字符串在传递给eval()时将生成一个具有相同值的对象 [...]"
鉴于这个类定义:
class Test(object):
def __init__(self, a, b):
self._a = a
self._b = b
def __str__(self):
return "An instance of class Test with state: a=%s b=%s" % (self._a, self._b)
def __repr__(self):
return 'Test("%s","%s")' % (self._a, self._b)
现在,序列化Test
类的实例变得很容易:
x = Test('hello', 'world')
print 'Human readable: ', str(x)
print 'Object representation: ', repr(x)
print
y = eval(repr(x))
print 'Human readable: ', str(y)
print 'Object representation: ', repr(y)
print
因此,运行最后一段代码,我们将得到:
Human readable: An instance of class Test with state: a=hello b=world
Object representation: Test("hello","world")
Human readable: An instance of class Test with state: a=hello b=world
Object representation: Test("hello","world")
但是,正如我在上一条评论中所说的:更多信息就在这里!