Migliore risposta
Python stesso non ha macro, ma puoi in qualche modo falsificarle usando il modulo AST integrato per analizzare e ricaricare il codice al volo. Questa è la magia di Python allestremo.
Se non hai la pazienza o linteresse per farlo da solo, karnickel (http://pypi.python.org/pypi/karnickel) è una piccola libreria che definisce le macro esattamente come ho descritto. Utilizzando karnickel, puoi definire una macro in questo modo:
In 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!"
Risposta
No, ma tecnicamente parlando, nemmeno C / C ++. Oppure, per dirla in altro modo, tutti i linguaggi di programmazione possono avere macro.
Il fatto è che C e C ++ i compilatori non espandono le macro il preprocessore C. E il preprocessore è indipendente dal compilatore. Significa che potresti facilmente usarlo anche per il codice sorgente Python.
Quindi, se lo desideri, puoi definire ed espandere le macro C nel tuo codice Python (o qualsiasi altro codice del linguaggio di programmazione), producendo pre- sorgente elaborata che darai successivamente allinterprete.