Onko Pythonilla makroja? Jos on, miten ne toimivat?


Paras vastaus

Pythonilla itsessään ei ole makroja, mutta voit tavallaan väärentää ne käyttämällä sisäänrakennettua AST-moduulia jäsennä ja lataa koodi lennossa. Tämä on Python-taika äärimmäisyyksiin.

Jos sinulla ei ole kärsivällisyyttä tai kiinnostusta tehdä tämä itse, karnickel (http://pypi.python.org/pypi/karnickel) on pieni kirjasto, joka määrittelee makrot juuri samalla tavalla kuin kuvasin. Karnickelin avulla voit määrittää makron täten:

macros.py:

from karnickel import macro

@macro

def custom\_loop(i):

for \_\_x in range(i):

print \_\_x

if \_\_x < i-1:

\_\_body\_\_

Esimerkissä.py:

# Install the import hook.

import karnickel

karnickel.install\_hook()

from macros.\_\_macros\_\_ import custom\_loop

with custom\_loop(10):

print "I"m looping!"

Vastaa

Ei, mutta teknisesti katsottuna ei myöskään C / C ++. Tai toisin sanoen kaikilla ohjelmointikielillä voi olla makroja.

Asia on, että C ja C ++ kääntäjät eivät laajenna makroja. Se on tehty C-esiprosessori. Ja esiprosessori on kääntäjästä riippumaton. Tarkoituksena on, että voit käyttää sitä helposti myös Python-lähdekoodiin.

Joten, jos haluat, voit määrittää ja laajentaa C-makroja Python-koodissasi (tai muussa ohjelmointikielikoodissa) tuottamalla ennakko- käsitellystä lähteestä, jonka syötät tulkkiin myöhemmin.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *