파이썬에 매크로가 있습니까? 그렇다면 어떻게 작동합니까?


최상의 답변

Python 자체에는 매크로가 없지만 내장 된 AST 모듈을 사용하여 가짜로 만들 수 있습니다. 즉시 코드를 구문 분석하고 다시로드합니다. 이것이 바로 Python의 마술입니다.

이 작업을 직접 수행 할 인내 나 관심이 없다면 karnickel (http://pypi.python.org/pypi/karnickel)은 작은 라이브러리입니다. 내가 설명한대로 매크로를 정의합니다. karnickel을 사용하면 다음과 같이 매크로를 정의 할 수 있습니다.

macros.py에서 :

from karnickel import macro

@macro

def custom\_loop(i):

for \_\_x in range(i):

print \_\_x

if \_\_x < i-1:

\_\_body\_\_

example.py의 경우 :

# Install the import hook.

import karnickel

karnickel.install\_hook()

from macros.\_\_macros\_\_ import custom\_loop

with custom\_loop(10):

print "I"m looping!"

답변

아니요.하지만 기술적으로 C / C ++도 마찬가지입니다. 달리 말하자면 모든 프로그래밍 언어에 매크로가있을 수 있습니다.

문제는 C와 C ++가 있다는 것입니다. 컴파일러는 매크로를 확장하지 않습니다. C 전 처리기. 그리고 전처리 기는 컴파일러와 독립적입니다. 이는 Python 소스 코드에도 쉽게 사용할 수 있음을 의미합니다.

따라서 원하는 경우 Python 코드 (또는 다른 프로그래밍 언어 코드)에서 C 매크로를 정의하고 확장하여 처리 된 소스는 나중에 통역사에게 제공 할 것입니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다