12.07.2015 Views

Python

Python

Python

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

74 Moduli i paketidatoteka ne postoji u niti jednom imeniku (folderu) u sys.path, onda interpreter provjerava da li imeodgovara imenu nekog ugraženog modula. Ako ni ono ne postoji, onda se podiºe ImportError iznimka.Compilacija datoteka u .pyc i .pyo datoteke dogaža se samo u sprezi s naredbom import. Programiizvedeni preko naredbene linije ili preko standardnog ulaza ne proizvode takve datoteke. Naredbaimport u traºenju datoteka razlikuje mala i velika slova u njihovom imenu. Kod operacijskih sustavakoji ne podrºavaju tu razliku, potrebno je o tomu voditi ra£una.8.1.3 Ponovno punjenje modulaUgražena funkcija reload() koristi se za ponovno punjenje i izvr²avanje kôda sadrºanog unutar modulakoji je prethodno u£itan s naredbom import. Ona prima objekt modula kao pojedina£ni argument. Naprimjer:import primjer... neki kôd ...reload(primjer)# Ponovno puni modul 'primjer'Sve operacije uklju£ene u modul ¢e se nakon izvoženja naredbe reload() izvesti iz novo u£itanogkôda. Mežutim, reload() ne¢e retroaktivno obnoviti objekte koji su nastali iz starog modula. To zna£ida je mogu¢e istodobno postojanje referenci na objekte i u staroj i u novoj verziji modula. Nadalje,compilirane ekstenzije pisane u C ili C++ ne mogu se ponovono puniti naredbom reload(). Kaoop¢e pravilo, treba izbjegavati ponovno punjenje modula, osim za vrijeme razvitka programa i traºenjapogre²ki u njemu.8.2 PaketiPaketi dopu²taju da se vi²e modula skupi zajedno pod jednim zajedni£kim imenom. Ova tehnikapomaºe u razlu£ivanju sukoba u prostoru imena modula koji se koriste u razli£itim primjenama. Paketse denira stvaranjem imenika, foldera (engl. directory, folder) s istim imenom kao paket i stvaranjem__init__.py datoteke u tom imeniku. Mogu¢e je nakon toga dodavati druge izvorne datoteke (tekstovnedatoteke s <strong>Python</strong> kôdom), compilirana pro²irenja ili podpakete u istom imeniku. Na primjer, paket semoºe ovako organizirati:Graphics/__init__.pyPrimitive/__init__.pylinije.pyispuna.pytekstovi.py...Graph2d/__init__.pyplot2d.py...Graph3d/__init__.pyplot3d.py...Formati/__init__.pygif.pypng.py

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!