001 eval()함수(expression[, globals=None[, locals=None]])
# 여기서 global은 전역 영역의 사전이고, 인수 local은 지역 영역의 사전이다
-내장함수, 파이썬 식을 인수로 받아 파이썬 컴파일 코드로 변환한다
>>> a = 1
>>> a = eval('a + 4 ')
>>> a
5
002 exec() 함수(object[, globals[, locals]])
-내장함수, 문자열로 표현된 문을 인수로 받아서 파이썬 컴파일 코드로 변환
>>> s = '''
a=1
if a > 0:
print('Success')
'''
>>> exec(s)
Success
003 compile() 함수 (string, filename, mode)
- string은 코드 문자열,
- filename은 파일이면 파일명을 파일이 아니면 <string>사용
- mode는 어떤 종류의 코드가 컴파일 되야하는지 말함
#mode엔 3가지모드 single은 하나의 문, eval은 하나의 식, exec은 여러개의 문
-내장함수, 문자열로 표현된 코드를 분석해서 파이썬 컴파일 코드로 변환
-
mode : eval ->하나의 식을 컴파일
>>>code = compile('a+1', '<string>', 'eval')
>>>a =1
>>>a = eval(code)
>>>print(a)
2 -
mode : single -> 하나의 문을 컴파일
>>>code = compile('a=a+1', '<string>','single')
>>>a=1
>>>esec(code)
>>>print(a)
2 -
mode : exec - > 여러개의 문을 컴파일
>>>s = '''
a = 1
for k in range(10)
a = a +1
print(a)
'''
>>>code = compile(s, '<string>', 'exec')
>>>exec(code)
11 -
소스 코드 파일을 읽어서 실행하는 예시
# compile_src.py
a = 1
for k in range(10):
a = a+1
print(a)
라는 compile_src.py라는 파일이 있다고 치자
위의 파일을 실행하는 코드는 다음과 같다
>>>s = open('compile_src.py').read() # 파일 내용을 읽어 들인다.
>>>code = compile(s, 'compile_src.py', 'exec')
>>>exec(code)
11
'Program Language > Python' 카테고리의 다른 글
파이썬 에러 모음 (0) | 2017.01.31 |
---|---|
파이썬 공부(문자열 (0) | 2014.04.03 |
파이썬 공부(input print format 함수) (0) | 2014.04.03 |
01 turtle 모듈 (0) | 2014.03.18 |