Python a-t-il des macros? Si oui, comment fonctionnent-ils?


Meilleure réponse

Python lui-même na pas de macros, mais vous pouvez en quelque sorte les simuler en utilisant le module AST intégré pour analyser et recharger le code à la volée. Cest la magie Python à lextrême.

Si vous navez pas la patience ou lintérêt de le faire vous-même, karnickel (http://pypi.python.org/pypi/karnickel) est une petite bibliothèque qui définit les macros exactement comme je lai décrit. En utilisant karnickel, vous pouvez définir une macro comme ceci:

Dans macros.py:

from karnickel import macro

@macro

def custom\_loop(i):

for \_\_x in range(i):

print \_\_x

if \_\_x < i-1:

\_\_body\_\_

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

Réponse

Non, mais techniquement parlant, le C / C ++ non plus. Ou, pour le dire autrement, tous les langages de programmation peuvent avoir des macros.

Le fait est que le C et le C ++ les compilateurs ne développent pas les macros. le préprocesseur C. Et le préprocesseur est indépendant du compilateur. Cela signifie que vous pouvez également lutiliser facilement pour le code source Python.

Donc, si vous le souhaitez, vous pouvez définir et développer des macros C dans votre code Python (ou tout autre code de langage de programmation), produisant des pré- source traitée que vous transmettrez à linterprète par la suite.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *