다이나믹한 파이썬에서 eval( )은 무엇인가?
프로그램 사용자로부터 “입력”을 받기 위해 input( ) 함수를 사용한다.
str = input("숫자를 입력하세요: ") # 사용자가 12를 입력했다면 str = "12"input로 사용자에게 값을 받으면 “ “ 문자열로 받게 된다. 문자열로만 받는 이유는 input 함수는 그렇게 만들어 졌기 때문이다. 문자열로 받은 값을 후에 정수형, 실수형 등 필요한 type으로 변환 시켜 사용하게 되는데
이 부분을 편리하게 변경해 주는 함수가 eval() 이다.
매개변수로 받은 expression 문자열로 받아, 판단하고 [실수]로 변환해 주는 함수.
즉, 매개변수로 받은 문자열로 받은 값(내용)을 판단하고 필요한 type으로 반환 한다.
BUT 악의적으로 접근하는 사람들로 인해 잘 쓰지 않는다. 개인적으로 사용하는 것은 괜찮지만 대중적으로 사용한다면 문제가 된다.
프로그램이란 것은 프로그래머가 만든 방식대로 움직여야 한다. 하지만 eval()함수를 사용하면 프로그래머가 의도한 대로 움직이는 것이 아니라 값을 입력하는 사용자의 의도로 프로그램이 움직이게 된다. 그렇기에 주의를 해야 하는 함수다.