BERLJIVOST PROGRAMSKE KODE
Python omogoča modularno programiranje, kjer lahko funkcije in drugo kodo razdelimo na ločene datoteke (module) in jih vključimo v glavni program. Tukaj je, kako to naredimo:
1. Struktura projektne mape
Ustvarimo projektno mapo s to strukturo:
moj_program/
├── main.py # Glavni program
├── funkcije.py # Modul s funkcijami
└── pomozne_funkcije/
├── __init__.py # Omogoča, da je mapa 'pomocne_funkcije' modul
└── shranjevanje.py # Modul za funkcije shranjevanja
2. Modul s funkcijami (npr. funkcije.py
)
V datoteko funkcije.py
shranimo splošne funkcije, ki jih želimo uporabiti v glavnem programu.
Primer: funkcije.py
def pozdravi_uporabnika():
"""
Pozdravi uporabnika.
"""
print("Dobrodošli v programu!")
def izhod():
"""
Izpiše sporočilo ob izhodu iz programa.
"""
print("Hvala za uporabo programa. Nasvidenje!")
3. Modul za shranjevanje (npr. pomozne_funkcije/shranjevanje.py
)
V podmapo pomozne_funkcije
dodamo funkcije za shranjevanje in nalaganje podatkov.
Primer: pomozne_funkcije/shranjevanje.py
import json
def shrani_podatke(podatki, ime_datoteke="podatki.json"):
"""
Shrani podatke v JSON datoteko.
"""
try:
with open(ime_datoteke, "w", encoding="utf-8") as datoteka:
json.dump(podatki, datoteka, indent=4, ensure_ascii=False)
print(f"Podatki so bili uspešno shranjeni v datoteko '{ime_datoteke}'.")
except Exception as e:
print(f"Napaka pri shranjevanju: {str(e)}")
def nalozi_podatke(ime_datoteke="podatki.json"):
"""
Naloži podatke iz JSON datoteke.
"""
try:
with open(ime_datoteke, "r", encoding="utf-8") as datoteka:
return json.load(datoteka)
except FileNotFoundError:
print(f"Datoteka '{ime_datoteke}' ne obstaja. Ustvarjeni bodo novi podatki.")
return {}
except Exception as e:
print(f"Napaka pri nalaganju podatkov: {str(e)}")
return {}
4. Glavni program (npr. main.py
)
V datoteki main.py
uvozimo in uporabimo funkcije iz modulov.
Primer: main.py
# Uvoz funkcij iz različnih modulov
from funkcije import pozdravi_uporabnika, izhod
from pomozne_funkcije.shranjevanje import shrani_podatke, nalozi_podatke
# Glavna funkcija programa
def main():
pozdravi_uporabnika()
# Nalaganje obstoječih podatkov
podatki = nalozi_podatke()
print("Obstoječi podatki:", podatki)
# Dodajanje novih podatkov
podatki["nova_kljuc"] = "nova vrednost"
# Shranjevanje posodobljenih podatkov
shrani_podatke(podatki)
izhod()
if __name__ == "__main__":
main()
5. Zagon programa
Zaženi main.py
:
python main.py
Prednosti modularnega pristopa
- Večja preglednost:
- Funkcije so organizirane v logične sklope.
- Ponovna uporabnost:
- Funkcije v modulih lahko uporabimo v več različnih projektih.
- Lažje vzdrževanje:
- Spremembe v funkcijah so centralizirane v modulih.