Bästa svaret
Python i sig har inga makron, men du kan typ av falska dem genom att använda den inbyggda AST-modulen för att analysera och ladda om koden i farten. Det här är Python-magi till det yttersta.
Om du inte har tålamod eller intresse att göra det själv är karnickel (http://pypi.python.org/pypi/karnickel) ett litet bibliotek som definierar makron precis som jag beskrev. Med karnickel kan du definiera ett makro så:
I makros.py:
from karnickel import macro
@macro
def custom\_loop(i):
for \_\_x in range(i):
print \_\_x
if \_\_x < i-1:
\_\_body\_\_
I exempel.py:
# Install the import hook.
import karnickel
karnickel.install\_hook()
from macros.\_\_macros\_\_ import custom\_loop
with custom\_loop(10):
print "I"m looping!"
Svar
Nej, men tekniskt sett gör inte C / C ++ det heller. För att uttrycka det på ett annat sätt kan alla programmeringsspråk ha makron.
Saken är att C och C ++ kompilatorer expanderar inte makron. Det görs av C-förprocessorn. Och förprocessorn är oberoende av kompilatorn. Det betyder att du också enkelt kan använda den för Python-källkod.
Så om du vill kan du definiera och utöka C-makron i din Python-kod (eller någon annan programmeringsspråkkod) och producera för- bearbetad källa som du kommer att mata till tolken efteråt.