A Pythonnak vannak makrói? Ha igen, hogyan működnek?


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.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük