Hlavní navigace

Názor k článku
Perličky: úvod do referencí

JS
JS (neregistrovaný)
23. 2. 2008 14:30 Nový

Re: Reknete Perlu ne

celé vlákno
Pominu-li, ze generovat Python z jineho programu je nesmysl (diky dynamickym vlastnostem jazyka), presto myslim, ze nemusite. Staci, kdyz ve funkci ktera vola funkci generujici radek(y) kodu, do toho radku pripisete prislusnou uroven. Tim se vam ta globalni uroven udrzi rekurzivne. Priklad:
def generuj_soucet(a,b):
  yield 'print '+str(a)+'+'+str(b)

def generuj_funkci_soucet(x,y):
  yield 'def soucet('+str(x)+','+str(y)+')'
  for s in generuj_soucet(a,b):
    yield '  '+s

for s in generuj_soucet(1,2):
  print s

for s in generuj_funkci_soucet('cislo1','cislo2'):
  print s

Pak muzete generator generuj_soucet pouzit na obou urovnich, a budete mit zarovnani spravne, jak ukazuje funkce generuj_funkci_soucet.