La mejor respuesta
Python en sí no tiene macros, pero puedes falsificarlas usando el módulo AST incorporado para analizar y recargar código sobre la marcha. Esto es magia de Python al extremo.
Si no tiene la paciencia o el interés para hacerlo usted mismo, karnickel (http://pypi.python.org/pypi/karnickel) es una pequeña biblioteca que define macros de la manera que describí. Usando karnickel, puede definir una macro así:
En macros.py:
from karnickel import macro
@macro
def custom\_loop(i):
for \_\_x in range(i):
print \_\_x
if \_\_x < i-1:
\_\_body\_\_
En 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!"
Respuesta
No, pero técnicamente hablando, C / C ++ tampoco. O, dicho de otra manera, todos los lenguajes de programación pueden tener macros.
Lo que pasa es que C y C ++ los compiladores no expanden macros. Eso se hace el preprocesador de C. Y el preprocesador es independiente del compilador. Lo que significa que también podría usarlo fácilmente para el código fuente de Python.
Así que, si lo desea, puede definir y expandir macros C en su código Python (o cualquier otro código de lenguaje de programación), produciendo pre fuente procesada que luego enviará al intérprete.