Tomy novella > skusal som stranky s pythonom a zopar dalsich veci, ale stale nechapem > naco je napriklad v kode > > -------------- > > s = """\ > <html><body> > foooooo > </body></html> > """ > > def main(): > return s > > main() > -------------- > ten riadok main() ? aj tak nic nespusta, naco tam je? alebo sa len > autor clanku pomylil? a druha otazka, ktora je viac/menej len pre > istotu: totiz, modul je vsetko, co ma funkciu index? diky :)
Pythonovský modul se při prvním použití zpracuje. To znamená, že se načítá shora dolů, kompiluje se do vnitřní podoby a výsledek se plní do slovníků interpretu. Pokud se provádí přiřazení, definuje se nové jméno a spojí se se zadaným objektem. Zde se s spojilo s objektem, který se nejdříve vytvořil z daného řetězcového literálu. Pokud se objeví def... kompiluje se definice funkce do vnitřní podoby. Pokud se objeví folání funkce nebo nějaký příkaz mimo def, provede se. V tomto případě se navenek nestalo nic, protože main() jen vrací existující řetězec a vracený výsledek se nepoužil. Nemám s mod_python konkrétní zkušenost (nebo k čemu to patří), ale explicitní zavolání main()na konci bez zpracování návratové hodnoty může být konvence. Skutečná definice main by mohla implementovat formou nějakého vedlejšího efektu další akce -- například zápis do log souboru. pepr _______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
