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.
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.
- Skapa
spelare.pymed klassenPlayer. - Låt
Playerha attributennameochhealth. - Skriv metoderna
take_damage(amount),is_alive()ochprint_status(). - Skapa
strid.pymed funktionernaattack(attacker, defender, damage)ochprint_result(player1, player2). - Skapa
main.pysom importerarPlayerfrånspelare.pyoch importerar hela modulenstrid. - 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.