Просто добавьте мои два цента к ответу @ 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")
Но, как я уже сказал в своем последнем комментарии: больше информации просто здесь !