Pakovanje modula - ★★ Fog Developer ★★

Novo

6/recent/ticker-posts

Pakovanje modula

10.6 Pakovanje modula

Do sada si, verovatno već počeo da razmišljaš u vezi strukture i načina organizovanja modula potrebnih za pisanje nekih tvojih programa. Za sada znaš da bi promenljive koje su potrebne samo za neki određen rad trebalo da stavljamo unutar adekvatne funkcije. Funkcije i globalne promenljive, obično stavljamo unutar adekvatnog modula koji čini neku logičku celinu. Ali, šta ako želimo da organizujemo te module? Kako se to postiže?
Moduli koji su organizovani u neku logičku celinu se najčešće naziva pakovanje (packages). 
Suštinski, pakovanja su samo folderi u kojima su smešteni moduli, ali koji, pored tih modula sadrži i poseban fajl kojem dajemo ime __init__.py i koji govori Python-u da je baš ova fascikla posebna, i da ona sadrži neke module.
Ovaj fajl, sa nazivom __init__.py može da bude prazan, može da sadrži informacije o autoru ili šta god... Pythonu je bitno samo njegovo ime!
Recimo da programiraš skriptu koja će pokretati mašinu koja automatski radi sve poljoprivredne radove. Budući da se radovi razlikuju od jedne poljoprivredne kulture do druge, ti moraš napisati skripte tj module, koji opisuju rad sa svakom od njih. Zato ćemo prvo da kreiramo paket pod nazivom 'poljoprivreda', koji će u sebi imati sub-pakete (samo druge foldere, koji su isto tako i paketi) koji bi nosili nazive 'ratarstvo', 'vocarstvo', 'stočarstvo' itd. Dalje ćemo u ove sub-pakete redom ubacivati module poput 'krava', 'višnja', itd. 
Folder 'poljoprivreda' mora biti na nekoj lokaciji koja je navedena unutar već viđene promenljive sys.path.
Evo kako će na kraju izgledati struktura direktorijuma na vašem računaru: 
  • <neki folder koji se nalazi unutar sys.path>/
    • poljoprivreda/
      • __init__.py
        • ratarstvo/
          • __init__.py
          • kukuruz/
            • __init__.py
            • obrada.py
        • voćarstvo/
          • __init__.py
            • šljiva/
              • __init__.py
              • prskanje.py
itd.
Obrati pažnju da sam u ovom primeru nazive direktorijuma završavao sa oznakom / . obrada.py i prskanje.py su moduli potrebni našem programu.
Pakovanje je samo konvencija o hijerarhiji i organizovanju modula. U suštini, ti ne moraš ovo da radiš, ali, ukoliko praviš module koji mogu biti korisni u mnogo različitih programa, trebao bi da ih ipak „spakuješ“ kako bi bili lako dostupni svakom programu! Možeš videti primere kako su pakovanja organizovana u standardnim bibliotekama, za koje sam ti već rekao da bi trebao da ih obilaziš i iščitavaš.

10.5 Funkcija dir Indeks 10.7 Rezime

Постави коментар

0 Коментари