Python 프로그래밍을 하다 보면 문자열 형태로 저장된 위치 좌표를 튜플(tuple) 형식으로 변환해야 하는 경우가 종종 있습니다. 이럴 때 eval 메서드를 활용하면 간단하게 해결할 수 있습니다.
eval 메서드란?
eval 메서드는 인자로 전달된 표현식(expression)을 파싱한 후, 해당 문자열을 실제 Python 코드처럼 실행합니다. 그리고 실행 결과로 평가된 값을 반환합니다. 즉, 문자열로 된 코드를 동적으로 실행할 수 있게 해주는 내장 함수입니다.
예제 코드
아래 예제를 통해 문자열 좌표를 튜플로 변환하는 과정을 살펴보겠습니다.
my_string = "67.5378, -78.8523"
print("원본 문자열 : ")
print(my_string)
my_result = eval(my_string)
print("문자열을 튜플로 변환한 좌표 : ")
print(my_result)실행 결과
원본 문자열 : 67.5378, -78.8523 문자열을 튜플로 변환한 좌표 : (67.5378, -78.8523)
코드 설명
- 좌표 값이 담긴 문자열을 정의하고 콘솔에 출력합니다.
eval메서드를 호출하면서 해당 문자열을 매개변수로 전달합니다.eval은 문자열을 코드로 실행하여 쉼표로 구분된 두 숫자를 하나의 튜플로 평가합니다.- 변환된 결과를 변수에 할당한 후 콘솔에 출력합니다.
주의 사항
eval은 편리하지만 보안상 위험할 수 있는 함수입니다. 신뢰할 수 없는 외부 입력값을 eval로 실행하면 악성 코드가 실행될 가능성이 있으므로, 사용자 입력 처리에는 ast.literal_eval과 같은 더 안전한 대안을 사용하는 것이 좋습니다.