반응형
질문
파이썬에서 파이썬 코드를 포함한 문자열을 실행하는 방법은 무엇인가요?
eval
(또는 exec
)을 절대로 프로그램 외부에서 가능한 형태로 가져올 수 있는 데이터에 사용하지 마십시오. 이것은 심각한 보안 위협입니다. 데이터의 작성자가 임의의 코드를 컴퓨터에서 실행할 수 있게 됩니다. 여러 변수를 생성하려는 이유로 여기에 오신 경우, 아마도 XY 문제가 있습니다. 그러한 변수를 전혀 생성하지 마십시오 - 대신에, 적절하게 리스트 또는 사전을 사용하십시오.
답변
For statements, use exec(string)
(Python 2/3) or exec string
(Python 2):
>>> my_code = 'print("hello world")'
>>> exec(my_code)
안녕하세요 세계
When you need the value of an expression, use eval(string)
:
>>> x = eval("2+2")
>>> x
4
However, the first step should be to ask yourself if you really need to. Executing code should generally be the position of last resort: It's slow, ugly and dangerous if it can contain user-entered code. You should always look at alternatives first, such as higher order functions, to see if these can better meet your needs.
반응형
댓글