@dbr의 답변에 내 2 센트를 추가하기 위해 다음은 그가 인용 한 공식 문서 에서이 문장을 구현하는 방법의 예입니다.
"[...]는 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")
그러나 마지막 의견에서 말했듯이 더 많은 정보는 여기에 있습니다 !