En modul i Python är en fil som innehåller Python-kod – t.ex. funktioner, variabler eller klasser – som du kan använda i ett annat program. På så sätt slipper du skriva om kod du redan gjort.

Alla .py-filer kan fungera som en modul, även sådana du själv skapar.

Varför använda moduler?

Fördelar:

  • Du kan återanvända kod i flera program.
  • Koden blir mer överskådlig och lätt att felsöka.
  • Flera kan arbeta parallellt i ett större projekt.
  • Du håller isär huvudprogram (användarflöde) och logik (funktioner och datahantering).

Exempel: Skapa och använda en egen modul

1. Skapa en modul

Skapa en fil som heter matematik.py:

# matematik.py

def addera(x, y):
    return x + y

def multiplicera(x, y):
    return x * y

2. Använd den i ett huvudprogram

Skapa en ny fil som heter huvudprogram.py:

# huvudprogram.py

import matematik #importera din modul (.py-fil)

tal1 = int(input("Ange första talet: "))
tal2 = int(input("Ange andra talet: "))

print("Summan är:", matematik.addera(tal1, tal2))
print("Produkten är:", matematik.multiplicera(tal1, tal2))

När du kör huvudprogram.py hämtas funktionerna från matematik.py.

Alternativ: Importera bara en funktion

from matematik import addera

print(addera(2, 5))  # Du behöver inte skriva matematik.addera()

Viktigt: if __name__ == "__main__"

När du importerar en modul i Python körs all kod som ligger utanför funktioner. För att undvika att viss kod körs när du importerar, använder man:

# matematik.py

def addera(x, y):
    return x + y

def multiplicera(x, y):
    return x * y

if __name__ == "__main__":
    print("Testar funktionerna:")
    print(addera(3, 2))

Nu körs testkoden endast när matematik.py körs direkt – inte när den importeras.

Färdiga moduler

Förutom att skapa egna moduler så finns det färdiga moduler i Python som du kan importera. Vi nämnde några tidigare och var vi kan hitta moduler till Python.

ModulBeskrivningExempel
randomSlumptalrandom.randint(1, 10)
mathAvancerade mattefunktionermath.sqrt(25)
timePauser och tidshanteringtime.sleep(1)
osFil- och mapphanteringos.listdir()

Du kan utforska fler moduler här:
https://docs.python.org/3/py-modindex.html