Moduler

Ofte har man mye kode som bør splittes ut for seg selv. Denne kan man da legge i en modul som importeres ved senere anledninger.

Rent praktisk blir dette en egen fil som man refererer til i kildekoden når man ønsker å bruke funksjonalitet fra den.

Eksempel på modul:

def pluss(tall1, tall2):
   return tall1+tall2

def minus(tall1, tall2):
   return tall1-tall2

def gange(tall1, tall2):
   return tall1*tall2

def dele(tall1, tall2):
   return tall1/tall2

def eksponent(tall1, tall2):
   return tall1**tall2

Dette er en modul for regnefunksjoner med filnavn matte.py.

Eksempel #1 på bruk av modulen over:

import matte

matte.pluss(1,2) # gir 3
matte.minus(1,2) # gir -1
matte.gange(2,2) # gir 4
matte.dele(10,5) # gir 2.0
matte.eksponent(2,3) # gir 8

Her må man angi matte. fremfor hvert funksjonskall.

Eksempel #2 på bruk av modulen øverst:

import matte as m

m.pluss(1,2) # gir 3
m.minus(1,2) # gir -1
m.gange(2,2) # gir 4
m.dele(10,5) # gir 2.0
m.eksponent(2,3) # gir 8

Nå er matte. forkortet til m. fordi modulen fikk m som kallenavn ved import.

Eksempel #3 på bruk av modulen øverst:

from matte import pluss, minus, gange, dele, eksponent
# eller "from matte import *" men da importeres rubbel og bit (!)

pluss(1,2) # gir 3
minus(1,2) # gir -1
gange(2,2) # gir 4
dele(10,5) # gir 2.0
eksponent(2,3) # gir 8

Her kan man bruke funksjonene direkte uten å skrive noe som helst fremfor.

Ulempen er at det blir kluss om man har egne funksjoner med samme navn.

Eksempel #4 på bruk av modulen øverst:

from matte import pluss as p, minus as m, gange as g, dele as d, eksponent as e

p(1,2) # gir 3
m(1,2) # gir -1
g(2,2) # gir 4
d(10,5) # gir 2.0
e(2,3) # gir 8

Her er funksjonene gitt kallenavn i stedet for. Også her må man passe på at man ikke har egne funksjoner med samme navn.

Her har eksemplene vært med funksjoner, men det er samme greia med klasser.

(OBS: Eksemplene som importerer modulen øverst ligger i egne .py-filer som må ligge sammen med matte.py for at de skal fungere. Dette er lite optimalt for større prosjekter, da må man heller forme det som Python-pakker … )

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *