Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 인터프리터 기본 클래스

<시간/>

Python의 대화형 모드는 REPL(읽기 - 평가 - 인쇄 - 루프) 원칙에 따라 작동합니다. Python 표준 라이브러리의 코드 모듈은 Python 스크립트 내에서 REPL 환경을 설정하기 위한 클래스 및 편의 기능을 제공합니다.

다음 두 클래스가 코드 모듈에 정의되어 있습니다.

대화형 통역사: 이 클래스는 구문 분석 및 인터프리터 상태(사용자의 네임스페이스)를 다룹니다.

대화형 콘솔: 대화형 Python 인터프리터의 동작을 밀접하게 에뮬레이트합니다.

모듈의 두 가지 편의 기능은 다음과 같습니다.

상호작용(): 읽기-평가-인쇄 루프를 실행하는 편리한 기능입니다.

compile_command(): 이 함수는 파이썬의 인터프리터 메인 루프(REPL)를 에뮬레이트하려는 프로그램에 유용합니다.

인터랙티브 인터프리터 방식

런소스(): 인터프리터에서 일부 소스를 컴파일하고 실행합니다.

runcode(): 코드 개체 실행

대화형 콘솔 방법:

InteractiveConsole 클래스는 InteractiveInterpreter의 하위 클래스이므로 위의 메서드를 자동으로 사용할 수 있습니다. 추가로 다음 메소드가 정의됩니다.

상호작용(): 대화형 Python 콘솔을 밀접하게 에뮬레이트합니다.

푸시(): 통역사에게 한 줄의 소스 텍스트를 푸시합니다.

리셋 버퍼(): 처리되지 않은 소스 텍스트를 입력 버퍼에서 제거하십시오.

raw_input(prompt="")

프롬프트를 작성하고 기본적으로 sys.stdin에서 한 줄을 읽습니다.

예시

import code
x = 10
y = 20
def add(x,y):
   return x+y
print (add(x,y))
code.interact(local=locals())
print (x,y)
print (add(x,y))

위의 코드에서는 2개의 vaiable이 정의되어 함수에 전달됩니다. 대화형 콘솔을 호출합니다. local=locals() 인수를 사용하면 인터프리터 루프 내에서 로컬 네임스페이스를 기본값으로 사용할 수 있습니다.

변수에 다른 값을 할당하고 ctrl+D를 눌러 콘솔을 종료하면 해당 값이 이제 함수에 전달됩니다.

출력

addition= 30
Python 3.6.6 |Anaconda custom (64-bit)| (default, Oct 9 2018, 12:34:16)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> x=100
>>> y=200
>>>

now exiting InteractiveConsole...
100 200
addition = 300