Updated:

less than 1 minute read

개요

  • evaluate(평가하다)의 약자
  • 전달되는 문자열을 분석해서 적절한 처리 수행
  • 함수 이름을 입력받으면 해당 함수를 호출
    • 표준 입력 사용 시 의도하지 않은 함수 호출이 가능한 보안 취약점 발생
  • 단순히 문자열을 숫자로 변환하려면 int/float 함수를 이용


예제

  • 코드
     def func():
         return 1
        
        
     if __name__ == "__main__":
         print(eval("1") + eval("2"))
         print(eval("2.5") * 2)
         print(eval("1 + 2 - 5"))
        
         print(eval("func()"))
        
         print("------")
        
         print(int(1.1))
         print(int("1"))
        
         print("------")
        
         print(float(1))
         print(float("1.1"))
    
  • 실행 결과
     3
     5.0
     -2
     1
     ------
     1
     1
     ------
     1.0
     1.1