ベストアンサー
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マクロを定義および展開して、事前に生成することができます。後でインタプリタにフィードする処理済みソース。