2017-12-10 1 views
-3

실제로 형식을 사용하여 형식으로 입력하고 적절한 시간에 실행하는 방법이 있습니까?사용자 입력 코드를 실행하는 방법은 무엇입니까?

뭔가 같은 : 이제

num = 5 
command = input() 
# do something with command 

내가 입력으로 "print(num)"를 입력하면, 그것은 출력

5 

그리고 그냥 파이썬, 나는 C에서이 문제에 대한 해결책을 가지고 사랑해야, C++ 또는 Java도 사용할 수 있습니다. 그대로

+0

Java의 경우 beanshell이 ​​있습니다. http://www.beanshell.org/ Java 소스 코드를 해석 할 수 있습니다. –

+6

누군가가 하드 드라이브를 포맷하거나 키 로거를 설치하는 프로그램을 입력하기 전까지는 재미 있고 게임입니다. 모두 권한으로 실행 중입니다. – StoryTeller

+1

'eval' 또는'exec'에 대한 입력은 정확하게 포맷되어야 할뿐만 아니라 ** 신뢰할 수있는 소스에서 가져와야합니다. 'eval'과'exec'는 보안 상 위험 할 수 있으므로 일반적으로 피해야합니다. 자세한 내용은 SO 베테랑 Ned Batchelder의 [Eval really dangerous] (http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html)를 참조하십시오. 또한'eval' /'exec'은 _slow_입니다. –

답변

1

는 당신이 실제로 제안하는 것은 작동합니다

>>> x=1 
>>> eval(input()) 
print(x) 
1 

또 다른 방법은 당신이 exec 방법은 한 번 봐 가지고 (그 위의 평가에 대한 자세한 설명입니다) 할 수 있습니다.

당신이 가고있는 것에 따라 이것은 나쁜 생각 일 수 있습니다. 환경을 제한하려면 localglobal 매개 변수를 살펴보십시오.

관련 문제