Hat Python Makros? Wenn ja, wie funktionieren sie?


Beste Antwort

Python selbst verfügt nicht über Makros, aber Sie können sie mit dem integrierten AST-Modul fälschen Code im laufenden Betrieb analysieren und neu laden. Dies ist Python-Magie bis zum Äußersten.

Wenn Sie nicht die Geduld oder das Interesse haben, dies selbst zu tun, ist Karnickel (http://pypi.python.org/pypi/karnickel) eine kleine Bibliothek, die Definiert Makros genau so, wie ich es beschrieben habe. Mit Karnickel können Sie ein Makro wie folgt definieren:

In macros.py:

from karnickel import macro

@macro

def custom\_loop(i):

for \_\_x in range(i):

print \_\_x

if \_\_x < i-1:

\_\_body\_\_

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

Antwort

Nein, aber technisch gesehen auch nicht C / C ++. Oder anders ausgedrückt, alle Programmiersprachen haben möglicherweise Makros.

Die Sache ist, dass C und C ++ Compiler erweitern keine Makros der C-Präprozessor. Und der Präprozessor ist unabhängig vom Compiler. Dies bedeutet, dass Sie es problemlos auch für Python-Quellcode verwenden können.

Wenn Sie möchten, können Sie C-Makros in Ihrem Python-Code (oder einem anderen Programmiersprachencode) definieren und erweitern. verarbeitete Quelle, die Sie anschließend dem Interpreter zuführen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.