Moduli

Kaj je modul?

Modul obravnavajmo kot programsko knjižnico. To je datoteka, ki vsebuje množico funkcij, ki jih lahko vključimo v našo aplikacijo.

Tvorba modula

Modul naredimo tako, da programsko kodo shranimo v datoteko s podaljškom .py

Primer

Naredimo si knjižnico uporabnih funkcij in shranimo naslednjo kodo v datoteko z imenom mojModul.py

def vsota (a,b):
  return(a+b)
def razlika (a,b):
  return a-b
def produkt (a,b):
  return a*b
def izpis (a):
  print ("vrednost= ",a)

Uporaba modula

Pravkar narejen modul lahko uvozimo v naš program s stavkom import

Primer

Uvozili bomo prej tvorjeni modul in ga uporabili za klic funkcije pozdravljen:

import mojModul
x = 20; y = 30
c = mojModul.vsota(x,y)
d = mojModul.razlika (c,10)
mojModul.izpis(d)

Opomba:Ko uporabljamo funkcijo iz nekega modula, uporabimo naslednjo sintakso: imeModula.imeFunkcije

Stvar je lahko malo nepregledna. Pri uvozu lahko damo modulu bolj smiselno ali krajše ime z besedico as:

Za naš primer bi to lahko izgledalo tako:

import mojModul as mm
x = 20; y = 30
c = mm.vsota(x,y)
d = mm.razlika (c,10)
mm.izpis(d)


Po želji lahko uvozimo le dele modula. Uporabimo ključno besedo from. V našem primeru uvozimo pač vse upoirabljene funkcije

from mojModul import vsota, razlika, izpis

x = 20; y = 30
c = vsota(x,y)
d = razlika (c,10)
izpis(d)

To pa je že bolj pregledno. No, če želimo uvoziti prav vse iz modula, hkrati pa izkoristiti možnost, da funkcije navajamo le z njihovimi imeni, uporabimo naslednjo obliko z zvezdico (ki pomeni "vse"):

from mojModul import *

x = 20; y = 30
c = vsota(x,y)
d = razlika (c,10)
izpis(d)


Spremenljivke v modulu

Modul ima lahko funkcije, pa tudi spremenljivke vseh tipov (polja, slovarje, objekte itd):

Kot zgled dopolnimo naš modul z bolj zanimivimi matematičnimi konstantami

Shranimo naslednjo kodo kot modul vektor.py:

PI = 3.14159265358 # stevilo PI
E = 2.718281828459  # naravno stevilo
def vsota (a,b):
  return(a+b)
def razlika (a,b):
  return a-b
........

... in to uporabimo v našem programu..

from mojModul import *
print(E)
print(PI)

Dobili bi izpis obeh kontant, lahko pa bi jih tudi uporabljali v naših računih.


Vgrajeni (Built-in) moduli

Na voljo imamo več vnaprej pripravljenih (vgrajenih) modulov.

Primer, modul platform pove, v katerem okolju izvajamo naš program

import platform

x = platform.system()
print(x)


Uporaba funkcije dir()

Imamo vgrajeno (vnaprej pripravjeno) funkcijo dir(), ki poda seznam vseh funkcij in spremenljivk v nekem modulu.

Tako bi v našem prvem primeru z uporabo...

import mojModul
x = dir(mojModul)
print(x)

...dobili izpis seznama vseh funkcij in spremenljivk, ki smo jih uvedli v našem  modulu.