只是为了在@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")
但是,正如我在上一条评论中所说:更多信息只是here!