Programming/Python
◎ 문자열로 된 파이썬 코드 실행하기
devanix
2010. 7. 30. 05:08
-
eval – 문자열로 된 파이썬 식(expression)
-
eval (expression[, globals[, locals]])
-
>>> a = 1 >>> a = eval('a + 4') >>> a 5 |
-
exec – 문자열로 된 문(statement)
-
exec code [ in globals [, locals]]
-
>>> a = 5 >>> exec 'a = a + 4' >>> a 9 |
※ global – 전역 영역 사전, local은 지역 영역 사전. (이들 인수는 선택적)
-
compile(*)
-
exec나 eval은 문자열로 입력된 코드를 분석해서 파이썬 컴파일 코드로 변환하기 때문에,
이러한 코드를 반복 수행하게 되면 변환에 필요한 시간은 크게 늘어난다.
-
효율적인 수행 방법은 문자열을 파이썬 코드로 한번 변환해 둔 후에, 코드를 활용.
-
compile (string, filename, kind)
-
string – 코드 문자열, filename – 코드 문자열이 저장된 파일명, kind – 코드 종류 형식
-
>>> code = compile ('a + 1', '<string>', 'eval') >>> a = 1 >>> for k in range(10): a = eval(code) >>> a 11 |