compile(source, filename, mode[, flags[, dont_inherit]])
중국어 설명: 소스를 코드 또는 AST 개체로 컴파일합니다. 코드 객체는 exec 문을 통해 실행되거나 eval()로 평가될 수 있습니다.
매개변수 소스: 문자열 또는 AST(추상 구문 트리) 개체.
매개변수 파일 이름: 코드 파일 이름, 파일에서 코드를 읽지 못하는 경우 식별 가능한 값을 전달합니다.
매개변수 모델: 컴파일된 코드의 유형을 지정합니다. 'exec', 'eval', 'single'로 지정할 수 있습니다.
매개변수 플래그 및 dont_inherit: 이 두 매개변수는 아직 도입되지 않으며 선택적 매개변수입니다.
버전: python2.3, 2.6, 2.7, 3.2에서 다릅니다. 사용 시 주의하세요. python3과 호환됩니다.
영어 설명:
소스를 코드 또는 AST 개체로 컴파일합니다. 코드 개체는 exec 문으로 실행되거나 eval() 호출로 평가될 수 있습니다. AST 개체를 사용하는 방법에 대한 정보는 ast 모듈 문서를 참조하세요.
파일 이름 인수는 코드를 읽은 파일에서 읽히지 않은 경우 인식 가능한 값을 전달해야 합니다. 파일('
mode 인수는 어떤 종류의 코드를 컴파일해야 하는지 지정합니다. 소스가 일련의 명령문으로 구성된 경우 'exec'일 수 있고, 'eval'일 수 있습니다. 단일 표현식으로 구성되거나, 단일 대화형 명령문으로 구성된 경우 '단일'로 구성됩니다(후자의 경우 None 이외의 값으로 평가되는 표현식 명령문이 인쇄됩니다).
선택적 인수 플래그 및 dont_inherit는 어떤 future 문(PEP 236 참조)이 소스 컴파일에 영향을 미치는지 제어합니다. 둘 다 존재하지 않거나 둘 다 0이면 코드는 compile을 호출하는 코드에 적용되는 future 문으로 컴파일됩니다. 가 주어지고 dont_inherit가 0이 아닌 경우(또는 0인 경우), 어쨌든 사용되는 것 외에 flags 인수로 지정된 future 문이 사용됩니다. dont_inherit가 0이 아닌 정수이면 flags 인수가 그것입니다. 즉 future 문입니다. 실제로 컴파일 호출 주변은 무시됩니다.
미래 문은 여러 문을 지정하기 위해 함께 비트 OR로 연결될 수 있는 비트로 지정됩니다. 특정 기능을 지정하는 데 필요한 비트 필드는 __future__ 모듈의 _Feature 인스턴스.
이 함수는 컴파일된 소스가 유효하지 않은 경우 SyntaxError를 발생시키고 소스에 null 바이트가 포함된 경우 TypeError를 발생시킵니다.
참고 'single' 또는 'eval' 모드에서는 입력이 하나 이상의 개행 문자로 종료되어야 합니다. 이는 코드 모듈에서 불완전하고 완전한 문을 쉽게 감지할 수 있도록 하기 위한 것입니다.
버전 2.3에서 변경된 사항: 플래그 및 dont_inherit 인수가 추가되었습니다.
버전 2.6 변경 사항: AST 개체 컴파일 지원
버전 2.7 변경 사항: Windows 및 Mac 줄바꿈 사용 허용 또한 'exec' 모드에서는 입력할 수 없습니다. 더 이상 개행 문자로 끝나지 않습니다.
코드 예:
>>> code = "for i in range(0, 10): print i" >>> cmpcode = compile(code, '', 'exec') >>> exec cmpcode 0 1 2 3 4 5 6 7 8 9 >>> str = "3 * 4 + 5" >>> a = compile(str,'','eval') >>> eval(a) 17