Python

[Python] 파이썬에서의 eval() 함수: 표현식을 실행하는 강력한 도구

yujinius 2024. 4. 29. 15:48

 

파이썬은 강력하고 다양한 기능을 제공하는 프로그래밍 언어입니다.

그 중에서도 eval() 함수는 특히 유용한 도구 중 하나입니다.

이 함수는 문자열로 표현된 파이썬 표현식을 받아들여 실행하는 데 사용됩니다.

이 글에서는 eval() 함수의 기본적인 사용법과 주의할 점에 대해 알아보겠습니다.

 

eval() 함수의 기본 구문

eval() 함수의 기본 구문은 다음과 같습니다.

eval(expression[, globals[, locals]])

 

여기서 expression은 실행할 파이썬 표현식을 나타냅니다. 이 표현식은 문자열로 제공되어야 합니다.

globalslocals는 선택적 매개변수로, 각각 전역 및 지역 네임스페이스를 나타냅니다. 이러한 매개변수를 지정하지 않으면 eval()은 현재 호출된 위치의 네임스페이스를 사용합니다.

 

eval() 함수의 예제

# 1. 간단한 수식 평가
result = eval('2 + 3')
print(result)  # 출력: 5

# 2. 변수를 포함한 표현식 실행
x = 10
result = eval('x * 2')
print(result)  # 출력: 20

# 3. 함수 호출
def add(a, b):
    return a + b

result = eval('add(3, 4)')
print(result)  # 출력: 7

 

 

주의할 점

eval() 함수를 사용할 때 주의해야 할 몇 가지 사항이 있습니다.

  1. 보안 상의 위험성: 사용자 입력과 같은 외부 데이터를 eval()에 직접 전달하는 것은 보안상 위험할 수 있습니다. 악의적인 사용자가 악의적인 코드를 실행시킬 수 있기 때문입니다. 따라서 외부 입력을 처리할 때는 신중해야 합니다.
  2. 오류 처리: 잘못된 표현식이나 문법 오류가 있는 경우 eval()은 SyntaxError 또는 NameError와 같은 예외를 발생시킵니다. 이러한 예외를 적절하게 처리해야 합니다.

결론

eval() 함수는 파이썬의 강력한 기능 중 하나로, 문자열로 표현된 파이썬 코드를 실행할 수 있습니다. 그러나 보안 문제와 오류 처리에 주의를 기울여야 합니다. 올바르게 사용하면 코드의 유연성과 간결성을 높일 수 있습니다.

이상으로 eval() 함수에 대한 간단한 소개를 마치겠습니다.