[python] Mobilni python

superman feed na centrum.cz
Pondělí Říjen 16 18:08:40 CEST 2006


> Soubor muzu hledat i tak, ze ho zkusim otevrit.
> Mohl bych sice udelat
> 
>     if access(cesta1):
>         return open(cesta1)
>     if access(cesta2):
>         return open(cesta2)
>     ...
> 
> ale jsou to dve systemova volani (takze min efektivni)
> a navic mne muze ten soubor nekdo mezi access a open
> smazat, takze ten open stejne musim osetrit.
> Nevidim na tom nic spatneho.

Jenže python interpretr to v mém pokusu dělal takto:

open(cesta_z_registru + modul)
open(cesta_ze_systemoveho_adresare_windows + modul)
open(cesta_z_PYTHONPATH + modul)
if (se nepodarilo otevrit soubor z cesty z PYTHONPATH):
   open(cesta_z_registru + modul)
   if (se nepodarilo otevrit soubor z cesty z registru):
      open(cesta_ze_systemoveho_adresare_windows + modul)
      if (se nepodarilo otevrit soubor z cesty ze systemu win):
          vyhod vyjimku importu

Coz je prakticky doslovny prepis jeho cinnosti pri hledani modulu a to 
uz mi normalni fakt neprijde. Možná detaily byly malinko jinak, ale 
pochopil jsem, že Python postupuje stylem nejdřív otevírej soubor a až 
pak se zeptej, jestli ho vlastně vůbec chceš otevírat.

Miloslav Ponkrác


Další informace o konferenci Python