Python-pakketten: structuur, importeren en best practices
Python-pakketten
Leer hoe je een groeiende codebase kunt organiseren met Python-pakketten en hoe je efficiënt je eigen of third-party modules kunt importeren.
Video: Python-pakketten – Je code organiseren
Wat zijn pakketten?
Net zoals we bestanden op schijf in mappen groeperen voor overzichtelijkheid, gebruikt Python pakketten om gerelateerde modules te groeperen. Een pakket is gewoon een map die een __init__.py-bestand bevat – dit vertelt Python de map te behandelen als een naamruimte.
Wanneer een project uitdijt, houdt het groeperen van gelijkaardige modules in een pakket het project beheersbaar en zelf-documenterend. Pakketten kunnen ook subpakketten bevatten, net zoals mappen genest kunnen worden.
Een spelproject kan er bijvoorbeeld zo uitzien:

Modules importeren vanuit een pakket
Modules worden geïmporteerd met de puntnotatie (.). Om start.py uit het pakket Game/Level te importeren, gebruik je:
import Game.Level.start
Als start.py een functie select_difficulty() definieert, roep je deze aan met de volledige naamruimte:
Game.Level.start.select_difficulty(2)
Om de code beknopter te maken, kun je de module importeren in de lokale naamruimte:
from Game.Level import start
Nu kan select_difficulty worden aangeroepen als:
start.select_difficulty(2)
Voor nog kortere imports haal je de functie direct op:
from Game.Level.start import select_difficulty
Daarna roep je het simpel aan:
select_difficulty(2)
Hoewel beknopt, kan importeren op functieniveau leiden tot naamconflicten als verschillende modules identiek bernama symbolen blootleggen. Het gebruik van het volledige pakketpad houdt de naamruimte expliciet en veiliger.
Python lost pakketimports op door de mappen in sys.path te doorzoeken, net zoals bij gewone modules.
Python
- Python Datatypes onder de knie krijgen: Een praktische gids
- Python Operators onder de knie krijgen: Een uitgebreide gids
- Python Pass Statement onder de knie krijgen: Een praktische gids
- Python Functie-argumenten onder de knie krijgen: Positionele, Keyword en Default Parameters
- Python-dictionaries beheersen: aanmaken, manipuleren en geavanceerde technieken
- Python-iterators: hoe ze werken en hoe je je eigen maakt
- Python-closures uitgelegd: hoe geneste functies variabelen vangen
- Python datetime beheersen: praktische gids voor datums, tijden en tijdzones
- Python's time.sleep() onder de knie krijgen: best practices, multithreading en real-world voorbeelden
- Python Overzicht: Hoog-Niveau, Leesbaar, Interactief & Object-Georiënteerd
- Python Numbers: Immutable Numerieke Datatypes Begrijpen