Moduler

Moduler er biblioteker, der indeholder en masse funktioner, som vi kan hente.

Python kommer oprindeligt med en masse indbyggede moduler, men af og til, er det nødvendigt at importere et. Det kan fx være modulet math. Vi bruger særligt også modulerne time og random, når vi hygger med at lave spil.

Disse moduler er skrevet af andre programmører. For at eksemplificere et modul, vil jeg i følgende eksempel lave et modul, der funktionerne f, g og h.

f udregner arealet af en retvinklet trekant. g opløfter værdien af et tal. h udregner arealet af en cirkel.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Mar  3 11:10:04 2020

@author: atle
"""

# Mit matematik

# Modul med matematik-formler

# Potensregning
def f(a, b):
    """

    Parametrer
    ----------
    a : Float
        Angiv tallet a som du vil have opløftet med tallet b
    b : Float
        Angiv tallet b, som skal opløfte tallet a

    Funktionen
    ----------
    def f(a, b):
        return a ** b
    
    Eksempel
    ----------
    f(a, b)
    
    f(3, 2)

    """
    # Returnerer a opløftet med b
    return a ** b

# Areal af retvinklet trekant
# ½ * højde * grundlinje
def g(h, g):
    """
    

    Parametrer
    ----------
    h : float
        Højden. Angiv højden på den retvinklede trekant
    g : float
        Grundlinjen. Angiv grundlinjen på den retvinklede trekant.
    
    Funktionen
    ----------    
    def g(200.56, 70):
        0.5 * h * g

    Eksempel
    -------
    g(h, g)
    
    g(8, 5.55)

    """
    return 0.5 * h * g

# Areal af cirkcel
def h(radius):
    """
    

    Parameter
    ----------
    radius : Float
        Angiv cirklens radius


    Funktionen
    -------
    def h(radius):
        pi = 3.14159
        areal = pi * radius ** 2
    
    Eksempel
    ----------
    h(radius)
    
    h(5)

    """
    pi = 3.14159
    areal = pi * radius ** 2
    return areal

Filen på Github

Gem nu filen som mitmap.py i en mappe, som du kalder mitmatematik.

Herefter kan vi importerer modulet fra mappen. Det letteste er, at gå ind i mappen og importere direkte ind i sin Python editor. Eksempelvis har jeg gemt filen i følgende mappe:

/home/atle/Documents/code/python/mitmatematik

Gå ind på din shell eller ipython. Du kan importere på følgende måder.

import mitmat

Ved denne metode importerer du hele modulet. Du skal skrive modulet navn foran funktionerne. I dette tilfælde mitmat.

>>> import mitmat
>>> mitmat.f(a, b)
>>> mitmat.g(h, g)
>>> mitmat.h(radius)

from mitmat import g

Denne metoder anbefaler jeg, da man hermed kun importerer den funktion, som man vil bruge. I dette tilfælde ønsker jeg kun at importerer funktionen g fra modulet mitmat.

>>> from mitmat import g
>>> g(h, g)

Læg mærke til, at du denne gang ikke behøver skrive mitmat foran din funktion.

from mitmat import *

Denne form for import kalder vi også for wildcard-metoden. * er dit wildcard. Metoden importerer alt hvad modulet indeholder.

Du skal ikke skrive mitmat foran funktionerne.

Generelt fraråder jeg denne form for import af moduler, men hvis man er i tvivl om noget, kan det godt være en idé. Jeg gør det fx altid, når jeg er i tvivl om hvor baggrunds-funktionen er i turtle-modulet.

>>> from mitmat import *
>>> f(a, b)
>>> g(h, g)
>>> h(radius)