Har Python makron? Om så är fallet, hur fungerar de?


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.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *