내장 함수 repr() 및 str()은 각각 object.__repr__(self) 및 object.__str__(self) 메서드를 호출합니다. 첫 번째 함수는 개체의 공식 표현을 계산하고 두 번째 함수는 개체의 비공식 표현을 반환합니다.
두 함수의 결과는 정수 개체에 대해 동일합니다.
>>> x = 1 >>> repr(x) '1' >>> str(x) '1'
단, string object의 경우는 그렇지 않습니다.
>>> x = "Hello" >>> repr(x) "'Hello'" >>> str(x) 'Hello'
string 객체의 repr() 반환 값은 eval() 함수로 평가할 수 있으며 결과는 유효한 string 객체입니다. 그러나 str()의 결과는 평가할 수 없습니다.
>>> y1 = repr(x) >>> eval(y1) 'Hello' >>> y2 = str(x) >>> eval(y2) NameError: name 'Hello' is not defined
요약. repr()은 객체의 기본적이고 명확한 표현을 반환합니다. 여기서 str()은 읽을 수 있지만 항상 모호하지 않을 수 있는 비공식적인 표현을 제공합니다.