2014-12-29 2 views
-5

파이 게임으로 파이 게임으로 게임을 만들려고합니다. 그것은 게임을 배워야한다. 그래서 게임 창에서 파이썬 쉘을 돌릴 수 있는지 물어보고 싶다. 아니면 내 자신의 파서를 프로그램해야만 하는가?프로그램에 파이썬 셸 추가

+0

'eval()','exec()'함수가 있습니다. 'python3 -midlelib'는 파이썬에서 구현됩니다. – jfs

+0

@ J.F.Sebastian은 심각한 보안 및 성능 영향을 언급하지 않고 eval/exec를 권장하지 마십시오. 특히 OP와 같은 분별없는 초보자들에게. 너와 같은 의견은 아마도 "나는 exec()"질문을 가진 계산기를 프로그램하고 싶다. OP, 질문이 너무 광범위하다. 게임에 모든 종류의 것을 끼워 넣을 수있다. 명시된 바와 같이 _can_ exec/eval을 사용할 수 있지만 사용자가 임의의 파이썬 코드를 excecute 할 수 있습니다. 정확히 무엇을하고 싶은가에 따라,'cmd' 모듈을 사용하여 대화식 쉘을 만들고 DSL을위한 작은 파서를 작성할 수 있습니다. – l4mpi

+0

@ l4mpi : OP가 "python shell"에 대해 명시 적으로 묻습니다. 아니 계산기, 아니 커피 기계하지만 약 ** 파이썬 ** 쉘. [이 문자열의 수학적 표현 평가]에 대한이 답변의 저자를보십시오 (http://stackoverflow.com/a/9558001/4279) – jfs

답변

2

subprocess.Popen('python')은 새로운 창에서 명령 줄에 'python'을 입력하는 것과 비슷한 방식으로 Python 인터프리터를 엽니 다. 그러나 나는 이것이 당신이 '게임 창'에서 의미했던 것이 아니라고 생각합니다.

cmd.Cmd "동사 개체 ... 구문을 사용하는"줄 중심 명령 인터프리터 작성을위한 간단한 프레임 워크를 만듭니다. 텍스트 어드벤처 게임 ('동방 이동', '열린 상자', '룩 룸'등)을 작성하는 데 사용할 수 있습니다.

code.InteractiveInterpreter은 특히 파이썬 해석기 용입니다. compileexec을 사용합니다. Idle 's Shell은 idlelib/PyShell.py에 정의 된 하위 클래스를 기반으로합니다. 그것은 tkinter 창에서 파이썬 인터프리터 인터프리터를 시뮬레이트합니다. compile에 포함 된 파서를 다시 쓸 필요가 없습니다. 구문 분석기의 출력 인 추상 구문 트리를 사용하여 컴파일이 중지되도록 지정할 수 있습니다.

관련 문제