Nejlepší odpověď
Python sám o sobě nemá makra, ale můžete je předstírat pomocí vestavěného modulu AST k analyzovat a znovu načíst kód za běhu. Toto je krajní kouzlo Pythonu.
Pokud nemáte trpělivost nebo zájem to udělat sami, karnickel (http://pypi.python.org/pypi/karnickel) je malá knihovna, která definuje makra přesně tak, jak jsem popsal. Pomocí karnickelu můžete definovat makro takto:
V macros.py:
from karnickel import macro
@macro
def custom\_loop(i):
for \_\_x in range(i):
print \_\_x
if \_\_x < i-1:
\_\_body\_\_
In 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!"
odpověď
Ne, ale technicky vzato, ani C / C ++. Jinými slovy, všechny programovací jazyky mohou mít makra.
Jde o to, že C a C ++ kompilátoři nerozšiřují makra. To je hotovo preprocesor C. A preprocesor je nezávislý na kompilátoru. To znamená, že byste jej mohli snadno použít i pro zdrojový kód Pythonu.
Takže pokud chcete, můžete definovat a rozšířit C makra ve svém kódu Pythonu (nebo jakémkoli jiném kódu programovacího jazyka), čímž vytvoříte pre- zpracovaný zdroj, který následně podáte tlumočníkovi.