반응형

문자열 코드 실행 --- eval, exec, compile



1. eval   --- 문자열로 된 식을 실행 


 
>>> a = '3 + 4'
>>> eval(a)
7
>>> b = eval(a)
>>> b
7


2. exec  --- 문자열로 된 문장을 실행 


 
>>> cmd = 'k = 3 + 4'
>>> exec(cmd)
>>> k          # 없던 k 라는 변수가 생김.
7



3. compile    -- https://docs.python.org/2/library/functions.html#compile

   --  문자열 소스를 컴파일 하여 , eval  이나, exec 에서 사용하게함. 


 
>>> cmd = 'print 3333*23'
>>> cc = compile(cmd, '<string>', 'exec')
>>> exec(cc)
76659


>>> cmd2 = '33 + 44'
>>> cc2 = compile(cmd2, '<string>', 'eval')
>>> eval(cc2)
77
>>> b= eval(cc2)
>>> b
77
>>>

반응형
Posted by 자유프로그램
,