반응형

우리는 우리가 원하는 문자열을 프로그램 실행 중이라도 마음대로 만들 수 있기 때문에

문자열로 표현된 파이썬 코드를 실행하는 것은 유용할 수 있다.

이런 코드를 실행하는 방법은 몇 가지가 있다.


1. eval

eval() 내장 함수는 문자열로 된 파이썬 식(Expression)을 실행한다.


식만을 수행할 수 있기 때문에 문을 실행하려고 하면 다음과 같은 SyntaxError 예외가 발생한다.


eval() 내장 함수의 사용 형식은 다음과 같다.

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

여기서 global은 전역 영역 사전, local은 지역 영역 사전이다. 이들 인수는 선택적이다.


2. exec

exec는 문자열로 된 문(Statement)을 수행한다.


exec는 여러 개의 문일 수 있다.


exec의 사용 형식은 다음과 같다.

exec code [ in globals [, locals]]

여기서 global은 전역 영역 사전, local은 지역 영역 사전이다.


3. compile

exec나 eval은 문자열로 입력된 코드를 분석해서 파이썬 컴파일 코드로 변환한다. 만일 이러한 코드를 반복적으로 수행하게 되면 변환에 필요한 시간은 크게 늘어나게 된다.

효율적인 수행 방법은 문자열을 파이썬 코드로 한번 변환해 둔 후에, 반복 실행할 때마다 이 코드를 활용하는 것이다. compile() 내장 함수는 문자열을 컴파일하여 파이썬 코드를 리턴한다.

사용 형식은 다음과 같다.  

compile (string, filename, kind)


여기서 string은 코드 문자열, filename은 코드 문자열이 저장된 파일명이다. 코드 문자열이 파일에서 읽혀지지 않았다면 <string>이 된다. kind는 어떤 종류의 코드가 컴파일되야 하는지 지정한다. ‘exec’이면 여러 개의 문들을 컴파일하며, ‘eval’이면 하나의 식을, ‘single’이면 하나의 대화적 문을 컴파일한다.


단일 문의 실행 예


복합 문의 실행 예


반응형

'프로그래밍 > 파이썬(Python)' 카테고리의 다른 글

자료형의 종류  (0) 2018.01.07
파이썬에서 콘솔 입,출력하기  (0) 2017.12.16
파이썬 기초문  (0) 2017.07.28
파이썬 변수명 및 예약어  (0) 2017.07.28
파이썬 스크립트를 작성하고 실행하기  (0) 2017.07.20

+ Recent posts