¿Python tiene macros? Si es así, ¿cómo funcionan?


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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *