python 기초
python repr eval 사용
난개발자
2023. 1. 24. 12:43
728x90
python의 str과 repr 함수가 비교되는 경우가 있는데
검색해보니 실제로 그 용도나 성격이 많이 다름을 알 수 있다.
찾아보고 이해한 바에 따르면 아래와 같다.
str() | repr() | |
용도 | 데이터를 string으로 변환 | 해당 데이터를 다시 생성할 수 있는 명령어 |
코드를 돌려보며 감을 잡아보았다.
import datetime
print("string 의 경우")
cur_time=datetime.datetime.now()
str_time = str(cur_time)
print(str_time)
print("repr 의 경우")
repr_time = repr(cur_time)
print(repr_time)
print(eval(repr_time))
위와 같이 사용할 때, string의 경우 자연스럽게 cur_time의 data를 string으로 저장하게 된다.
repr의 경우, datetime.datetime(2023, 1, 24, 12, 32, 3, 178779) 이라는, 현재의 결과를 그대로 재생산 할 수 있는 명령어를 준다.
여기서 신기했던 부분은, datetime.datetime.now() 을 주는게 아닌, cur_time 자체를 해석하여 동일한 결과를 낼 수 있는 명령어를 준다는 것이다.
다시 동일한 결과를 얻기 위해서는 eval 함수를 통해 repr 된 내용을 다시 실행하면 된다.
이런 기능을 기본적으로 제공한다는게 참 신기하다..
728x90