최상의 답변
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 매크로를 정의하고 확장하여 처리 된 소스는 나중에 통역사에게 제공 할 것입니다.