Modul je jedan fajl. Paket organizuje povezane module.
Modul je jedan .py fajl, kao kalkulator.py. Paket je folder koji grupiše povezane module. Zamisli modul kao jednu alatku, a paket kao kutiju koja drži povezane alatke zajedno.
alati/
├── __init__.py
├── kalkulator.py
└── konverter.pyPaket pomaže da veći projekat ostane pregledan. Ovde je alati paket, a dva .py fajla u njemu su moduli.
U prethodnoj lekciji povezani fajlovi mogli su da stoje pored main.py. To u početku radi, ali glavni folder postaje pretrpan kako projekat raste.
Jasan obrazac za učenje: __init__.py je Python fajl unutar foldera paketa. Može biti prazan. U ovom kursu ga koristimo za klasičan Python paket, jer je to jasan način da označimo i organizujemo paket. Moderni Python podržava i neke pakete bez njega, ali taj obrazac nam još nije potreban.
moj_projekat/
├── main.py
├── kalkulator.py
└── konverter.pyOvo može da radi, ali više fajlova brzo otežava pregled glavnog foldera.
moj_projekat/
├── main.py
└── alati/
├── __init__.py
├── kalkulator.py
└── konverter.pySada povezani moduli žive zajedno u paketu alati, dok main.py ostaje lako uočljiv.
from alati import kalkulator
print(kalkulator.saberi(5, 3))
from alati.kalkulator import saberi
print(saberi(5, 3))
# Avoid: from alati.kalkulator import *Prvi stil uvozi modul, zato poziv zadržava kalkulator.. Drugi uvozi jednu funkciju direktno. Izbegavaj import * jer sakriva odakle nazivi dolaze.
Pročitaj import iz paketa
- 1. Počni od paketaU
from alati.kalkulator import saberi,alatije folder paketa. - 2. Navedi modul
kalkulatorje fajl modula unutar tog paketa. - 3. Uvezi ono što ti treba
saberije funkcija uvezena iz modula, zato možeš da pozovešsaberi(...)umain.py.
Python ne pronalazi moj paket
- Pokrenuo si pogrešan fajlOtvori folder projekta i odatle pokreni odgovarajući main.py.
- Naziv se ne podudaraProveri naziv foldera, naziv fajla i svaki deo importa da nema slovne greške.
- Fajlu nedostaje .pyProveri da fajlovi modula zaista završavaju sa .py i da za primer iz ovog kursa postoji __init__.py.
- Folder projekta je drugiProveri da radiš u projektu koji sadrži main.py i folder alati.
