[python] python na web - otazky

Petr Prikryl PrikrylP na skil.cz
Pátek Prosinec 7 08:28:34 CET 2007


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


Další informace o konferenci Python