본문 바로가기
Python/Python FAQ

Python에서 Python 코드를 포함한 문자열을 실행하는 방법은 무엇인가요?, How do I execute a string containing Python code in Python?

by 베타코드 2023. 10. 27.
반응형

질문


파이썬에서 파이썬 코드를 포함한 문자열을 실행하는 방법은 무엇인가요?


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.

반응형

댓글