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.