본문 바로가기
Language/Python

eval 함수

by Mesut Özil 2023. 12. 5.

eval 함수는 Python에서 사용되는 내장 함수 중 하나로,

문자열표현된 파이썬 표현식을 평가하여 결과를 반환합니다.

ex) result = "2 + 2"(문자열) → eval(result) = 4

주로 동적인 코드 생성이나 문자열로 표현된 수식을 계산하는 데 사용됩니다.

 

하지만 eval을 사용할 때 주의가 필요하며,

안전하지 않은 입력이나 사용자 입력과 같은 신뢰할 수 없는 데이터를 다룰 때는 사용을 피해야 합니다.

안전하지 않은 사용은 보안상의 위험을 초래할 수 있습니다.

 

코드 예시

# 예시 1: 간단한 수학 표현식 계산
result = eval("2 + 2")
print(result)
# 결과: 4

# 예시 2: 변수를 사용한 표현식 계산
x, y = 10, 20
expression = "x + y"
result = eval(expression)
print(result)
# 결과: 30

이 예시에서 eval 함수는 주어진 문자열을 파이썬 코드로 해석하고 실행한 후 결과를 반환합니다.

 

eval 사용 시 주의 사항

 

1. 보안 문제

eval은 잘못 사용될 경우 보안 문제를 야기할 수 있습니다.

사용자 입력과 같은 신뢰할 수 없는 데이터를 eval()에 전달하는 것은 피해야 합니다.

 

2. 성능 문제:

eval은 실행 시간에 코드를 컴파일하므로 반복적으로 사용되는 코드에서는 성능에 영향을 줄 수 있습니다.

불필요한 경우에는 사용을 피하는 것이 좋습니다.


3. 가독성:

코드의 가독성을 해칠 수 있습니다.

가급적이면 다른 방법으로 표현식을 처리하는 것이 코드를 더 이해하기 쉽게 만들 수 있습니다.

 

 

 

본 게시글은 ChatGPT의 도움을 받아 작성하였습니다.

'Language > Python' 카테고리의 다른 글

datetime, dateutil(날짜, 시간)  (0) 2023.12.20
if-else, while, break, continue, pass  (2) 2023.12.05
math 라이브러리  (2) 2023.12.04
파이썬 기본 데이터 구조  (0) 2023.11.02
enumerate 함수  (2) 2023.10.29