본문 바로가기
코딩/파이썬 문법

eval 함수

by rosemarie 2023. 8. 7.
반응형

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