인프런 커뮤니티 질문&답변

욕망의햄버거님의 프로필 이미지

작성한 질문수

파이썬 중급

클래스와 객체 1

eval(repr(p)) 가 진짜 Pair 객체로 만들어지는 이유?

해결된 질문

작성

·

101

0

안녕하세요 강사님, 수업 잘 듣고 있습니다. 좋은 강의 만들어 주셔서 감사드립니다.

수업을 듣다가 9분 12초 쯤에서 질문이 있어서 게시글 남깁니다.


eval(repr(p)) 에서,

repr(p) 가 Pair 라는 클래스를 호출해서 인스턴스로 만드는
string을 나타내기 때문에, eval()을 했을 때 Pair라는 객체가 생성되는 게 맞을까요?

바꿔서 말하면 repr(p)가 평가되었을 때 Pair(3,4)와 같은 객체 생성 expression과 같기 때문에 그 expression이 eval()을 타서 Pair 객체가 만들어지는거죠?!

 

답변 주시면 감사하겠습니다!

답변 1

0

김정인님의 프로필 이미지
김정인
지식공유자

eval() 함수는 string을 이자로 받습니다. 이때 string "Pair(3,4)" 가 입력되면 객체를 생성합니다.

repr(p)는 "Pair(3,4)"를 출력 하게 됩니다.

따라서, 해당 클래스에 repr이 재정의 되어 있으면 자신과 같은 객체를 생성할 수 있게 됩니다.