Programmering nivå 2

Kap 3.7 – Egna moduler och import

Dela upp kod i flera filer och använd moduler.

Mål med lektionen

När du har arbetat klart med denna lektion ska du:

  • Förstå vad en modul är i Python.
  • Kunna skapa egna Python-filer med funktioner och klasser.
  • Kunna importera och använda moduler i olika program.
  • Dela upp kod i flera filer för bättre struktur.

Så här lär du dig bäst

Börja med ett litet program du redan skrivit. Flytta några funktioner till en egen .py-fil och testa att importera dem i huvudfilen. Lägg gärna till nya funktioner för att experimentera. Undvik att kopiera hela program - tänk på modulens syfte: återanvändbara delar.

Centrala begrepp

  • modul – En fil i Python (slutar på .py) som innehåller funktioner, klasser eller variabler.
  • import – Används för att hämta funktionalitet från andra filer.
  • modulstruktur – Att dela upp ett program i flera logiska delar.

Innehåll och exempel

Hur hänger filerna ihop?

En modul är en vanlig Python-fil som innehåller kod du vill kunna återanvända. Om filen heter verktyg.py blir modulens namn verktyg. En annan fil, till exempel main.py, kan importera modulen och använda funktionerna därifrån.

projekt/
├── main.py
└── verktyg.py

Det viktiga är att filerna ligger så att Python kan hitta modulen. I de första exemplen ligger main.py och verktyg.py i samma mapp.

Skapa en modul: verktyg.py

def hälsa(namn):
    print(f"Hej, {namn}!")

def kvadrat(tal):
    return tal * tal

Använda modulen: main.py

import verktyg

verktyg.hälsa("Ella")
print(verktyg.kvadrat(5))

När du skriver import verktyg importeras hela modulen. Då behöver du skriva modulnamnet före funktionen, till exempel verktyg.hälsa("Ella"). Det gör det tydligt var funktionen kommer ifrån.

Importera bara det du behöver

from verktyg import hälsa

hälsa("Leo")

Med from verktyg import hälsa importeras bara funktionen hälsa. Då kan du anropa den direkt, utan verktyg. framför.

Byta namn med alias

import verktyg as v

v.hälsa("Tove")

Alias används när du vill ge modulen ett kortare namn i den aktuella filen. Här betyder v samma sak som verktyg.

Interaktiv övning: importera en egen modul

Välj importsätt och kör exemplet. Jämför hur anropet ändras beroende på om hela modulen, en funktion eller ett alias importeras.

Välj ett importsätt och tryck på Kör import.

Programmering 2-koppling: moduler gör att funktioner kan ligga i en egen fil och återanvändas från flera huvudprogram.

Öva själv

Skapa en projektmapp som heter kap3-7-moduler. Dela upp programmet i tre filer så att varje fil får ett tydligt ansvar.

  1. Skapa spelare.py med klassen Player.
  2. Låt Player ha attributen name och health.
  3. Skriv metoderna take_damage(amount), is_alive() och print_status().
  4. Skapa strid.py med funktionerna attack(attacker, defender, damage) och print_result(player1, player2).
  5. Skapa main.py som importerar Player från spelare.py och importerar hela modulen strid.
  6. Testa programmet genom att skapa två spelare, låta dem attackera varandra och skriva ut resultatet.

Importerna i main.py kan se ut så här:

from spelare import Player
import strid

När du har försökt själv kan du ladda ner ett lösningsförslag: kap3-7-moduler-losningsforslag.zip. Du kan också öppna filerna direkt: main.py, spelare.py och strid.py.

Varför moduler?

  • Koden blir lättare att förstå och testa.
  • Du slipper duplicera kod i flera filer.
  • Du kan återanvända funktioner i flera projekt.

Sammanfattning

  • En modul är en egen .py-fil som kan importeras till andra program.
  • Du kan importera hela moduler eller specifika delar.
  • Moduler hjälper dig att hålla din kod organiserad och återanvändbar.

Tillbaka till Kapitel 4