728x90
반응형
문자열로 'a = 1 + 2'와 같이 되어 있을 때 실행하는 방법입니다.
재미있는 기능입니다.
3가지 방법이 있습니다.
1) eval
2) exec
3) compile
1) eval : 1 줄로 된 코드만 실행
def func():
print('Ok!!!')
func_str = 'func()' # 함수가 문자열로 되어 있습니다
eval(func_str) # 문자열로 된 코드를 실행합니다
2) exec : 여러 줄로 된 코드 실행
func_str2 = '''
for i in range(3):
print(i)
'''
eval(func_str2)
3) compile : eval, exec는 문자열을 코드로 변환 후 실행하여 리소스를 많이 소모. compile은 문자열을 코드로 변환해두고 다시 사용할 수 있음.
func_str2 = '''
for i in range(3):
print(i)
'''
python_code = compile(func_str2, '<string>', 'exec') # 실행문장,filename 없으면 '<string>', single / eval / exec
exec(python_code)
728x90
반응형
'프로그램' 카테고리의 다른 글
[Rust] Cargo, VS Code 없이 만들기 (Hello, World) (0) | 2022.09.15 |
---|---|
[Rust] Rust version 확인 방법 (0) | 2022.09.15 |
[파이썬] 온라인에서 파이썬 사용 가능 Site (0) | 2022.09.06 |
[파이썬] PyCharm에서 파이썬 환경 설정 (0) | 2022.09.06 |
[파이썬] pandas 에러(KeyError(f'{not_found} not in index')) (0) | 2022.09.06 |
댓글