Python

[Python] exec

비번변경 2022. 6. 22. 23:00

exec

문자열 또는 코드 객체와 같이 동적으로 생성된 프로그램을 실행한다.

exec(object, globals=None, locals=None)

 

매개변수

  • object : 문자열 또는 코드 객체
  • global : (선택) 딕셔너리 사용
  • locals : (선택) 매핑 객체 사용

 

사용법

exec('CODE')

# 예시
code = 'nums = [i for i in range(5)]'
exec(code)
print(nums)

exec 실행

exec 외에서 선언한 변수, 라이브러리도 exec 내에서 사용할 수 있다. 

 

 

eval VS exec

exec은 문자열 식을 실행하는 eval 함수와 비교되곤 한다.

참고 : 2021.12.17 - [eval] 문자열 식 실행

 

exec 또한 eval과 마찬가지로 문자열을 실행시키므로 매우 강력하지만, Command Injection 공격에 취약하다는 공통점이 있다.

다만, eval은 파이썬 표현식을 실행해 결과를 반환하지만 eval은 문자열 코드를 실행하며 반환 값이 없다는 차이점이 존재한다.

 

 

참고 문서

https://www.programiz.com/python-programming/methods/built-in/exec

 

 

728x90