O Python tem macros? Se sim, como eles funcionam?


Melhor resposta

O próprio Python não tem macros, mas você pode falsificá-las usando o módulo AST integrado para analise e recarregue o código em tempo real. Isso é a magia do Python ao extremo.

Se você não tem paciência ou interesse em fazer isso sozinho, karnickel (http://pypi.python.org/pypi/karnickel) é uma pequena biblioteca que define macros da maneira que descrevi. Usando Karnickel, você pode definir uma macro da seguinte maneira:

Em macros.py:

from karnickel import macro

@macro

def custom\_loop(i):

for \_\_x in range(i):

print \_\_x

if \_\_x < i-1:

\_\_body\_\_

Em 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!"

Resposta

Não, mas tecnicamente falando, C / C ++ também não. Ou, dito de outra forma, todas as linguagens de programação podem ter macros.

A questão é que C e C ++ compiladores não expandem macros. Isso é feito por o pré-processador C. E o pré-processador é independente do compilador. O que significa que você também pode usá-lo facilmente para o código-fonte Python.

Então, se quiser, você pode definir e expandir macros C em seu código Python (ou qualquer outro código de linguagem de programação), produzindo fonte processada que você irá alimentar para o intérprete posteriormente.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *