Legjobb válasz
Magának a Pythonnak nincsenek makrói, de valamennyire hamisíthatja őket a beépített AST modul használatával elemezni és újratölteni a kódot menet közben. Ez a végletekig Python varázslat.
Ha nincs türelme vagy érdeklődése ehhez saját maga, a karnickel (http://pypi.python.org/pypi/karnickel) egy kis könyvtár, a makrókat az általam leírtak szerint definiálja. A karnickel használatával definiálhat egy makrót:
A macros.py fájlban:
from karnickel import macro
@macro
def custom\_loop(i):
for \_\_x in range(i):
print \_\_x
if \_\_x < i-1:
\_\_body\_\_
Például :py:
# Install the import hook.
import karnickel
karnickel.install\_hook()
from macros.\_\_macros\_\_ import custom\_loop
with custom\_loop(10):
print "I"m looping!"
Válasz
Nem, de technikailag a C / C ++ sem. Vagy, másképpen fogalmazva, az összes programozási nyelvnek lehetnek makrói.
Az a helyzet, hogy a C és a C ++ A fordítók nem bővítik a makrókat a C előfeldolgozó. Az előfeldolgozó pedig független a fordítótól. Ez azt jelenti, hogy könnyedén felhasználhatja a Python forráskódjához is.
Tehát, ha úgy tetszik, definiálhat és kibonthatja a C makrókat a Python kódjában (vagy bármely más programozási nyelvi kódban), elő elő feldolgozott forrás, amelyet utána továbbítasz a tolmácsnak.