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.