반응형
eval() 함수: 문자열 형태의 파이썬 코드를 실행해서 결과값을 반환해주는 내장 함수
예를 들어, "2 + 3" 이라는 문자열을 eval() 함수로 실행하면, 그 결과로 5가 반환됩니다.
result = eval("2 + 3")
print(result) # 5
더 복잡한 계산도 가능합니다. "2 * (3 + 4)" 와 같은 코드도 실행 가능합니다.
하지만 eval() 함수는 잘못된 입력값으로 인해 실행 중 에러가 발생할 수 있습니다. 예를 들어, "os.system('rm -rf /')"와 같은 코드를 실행할 경우, 전체 파일 시스템을 삭제하는 심각한 문제가 발생할 수 있습니다. 따라서, eval() 함수는 사용에 있어 매우 주의해야 합니다.
eval() 함수를 대신할 수 있는 다른 방법으로는 ast.literal_eval() 함수가 있습니다. 이 함수는 문자열로부터 파이썬 리터럴(literal) 값을 안전하게 파싱하여 반환합니다. 하지만 ast.literal_eval() 함수는 파이썬의 일부 리터럴 값만 처리 가능하므로 eval() 함수 만큼 다양한 계산에 대응하기에는 한계가 있습니다.
'코딩 > 파이썬 문법' 카테고리의 다른 글
파이썬 ord함수, chr함수 (0) | 2023.09.05 |
---|---|
문자 리스트를 문자열로 변환하기 join 메서드 (0) | 2023.08.21 |
sort 함수 (0) | 2023.07.03 |
파이썬 산술연산자 (0) | 2023.06.15 |
find( ), index( ) 공통점, 차이점 (0) | 2023.05.21 |