私の2セントを@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")
しかし、前回のコメントで述べたように、詳細はこちらです!