De programmering met Python opent veel mogelijkheden die verder gaan dan eenvoudige scripts. Een centrale component in de objectgeoriënteerde programmering is het werken met klassen. Zij vormen de basis voor objecten en stellen je in staat om complexe gegevensstructuren te creëren en te beheren. In deze handleiding leer je hoe je eigen klassen in Python definieert, om hun eigenschappen en methoden effectief te gebruiken.
Belangrijkste inzichten
- Klassen zijn de sleutel tot objectgeoriënteerde programmering in Python.
- Een initializer (constructor) stelt je in staat om bij het aanmaken van een klasse specifieke eigenschappen te definiëren.
- Methoden in klassen stellen je in staat om functies te kapselen die werken met de eigenschappen van een object.
- Toegang tot eigenschappen gebeurt via de puntoperator.
Stapsgewijze handleiding
Laten we beginnen met de basisprincipes van het opbouwen van klassen in Python. Eerst moet je met het trefwoord class een nieuwe klasse definiëren. Dit kun je in je Python-code als volgt doen:

Hier hebben we een lege klasse genaamd Medewerker. Je kunt deze aanvankelijk zonder parameters definiëren, wat betekent dat de klasse zonder specifieke initialisatie wordt aangemaakt. Dit is een belangrijke basis om ervoor te zorgen dat je later geen fouten krijgt bij het aanmaken van objecten.
Nu maak je een object van deze klasse. Dit kun je eenvoudig doen door de klassenaam te gebruiken en een lege haakje te plaatsen:
In dit geval hebben we een object Medewerker, dat we net hebben aangemaakt. De volgende stap is om de klasse uit te breiden met eigenschappen. Je zou bijvoorbeeld de klasse Medewerker een naam kunnen geven.
Om dit te doen, moet je eerst een initializer definiëren die als constructor van je klasse dient. Dit gebeurt door middel van de methode __init__.

Hier zie je hoe een __init__-constructor wordt gedefinieerd. We geven de naam door als parameter en gebruiken self om de naam voor het huidige object op te slaan.
Nu je een eigenschap hebt, kun je bij het aanmaken van een object direct een naam doorgeven:

Als je nu het object deelnemer met de naam "Jan" aanmaakt, wordt de naam in de instantie opgeslagen. Via de autocompletion kun je controleren of de naam correct is ingesteld.
Om de eigenschappen te benutten, kun je ze aanroepen met behulp van de puntoperator:

Dit is het punt waarop je toegang kunt krijgen tot de eigenschappen van je object. In dit geval druk je de naam van de deelnemer af.
Naast eigenschappen kun je ook methoden implementeren. Het maken van een methode werkt op een vergelijkbare manier als het definiëren van een functie:

Hier definieer je de methode aanmelden. Let opnieuw op dat self automatisch als parameter aan de methode wordt doorgegeven om toegang te krijgen tot de instantie. Bij de aanmelding zouden we bijvoorbeeld een succesmelding kunnen afdrukken:

Wanneer je de methode aanmelden aanroept, ziet dit er als volgt uit:

Hier roep je de methode op de instantie deelnemer aan, wat een terugkoppeling over de aanmelding geeft.
Tot slot kunnen we ook parameters aan methoden doorgeven, vergelijkbaar met functies. Bijvoorbeeld een methode afmelden die een parameter voor voortijdige afmelding verwacht:

Hier analyseer je of de deelnemer zich voortijdig wil afmelden en geef je een bijbehorende melding weer.
ScreenShot_320
Dit toont je hoe interactief je klasse en methoden kunnen zijn en hoe ze reageren op invoer.
Tot slot zouden we de basisprincipes die we hebben geleerd nogmaals moeten samenvatten. De definitie van klassen bestaat uit het definiëren van attributen en methoden die relevant zijn voor de bijbehorende objecten. De constructor __init__ is van cruciaal belang om attributen in te stellen bij het aanmaken van het object.
Samenvatting – Eigen klassen in Python creëren en gebruiken
Door het begrijpen en toepassen van deze basisprincipes kun je krachtige en flexibele programma's ontwikkelen in Python. Je kunt klassen creëren die specifieke functies en eigenschappen kapselen, om de programmering gebruiksvriendelijker en effectiever te maken.
Veelgestelde vragen
Hoe definieer ik een klasse in Python?Gebruik het trefwoord class, gevolgd door de klassenaam en een dubbele punt.
Wat is het doel van de __init__-constructor?Deze wordt gebruikt om initialisaties uit te voeren bij het aanmaken van een object.
Hoe krijg ik toegang tot de eigenschappen van een object?Gebruik de puntoperator, gevolgd door de eigenschapsnaam, bijv. object.eigenschap.
Kan ik meerdere parameters aan een methode doorgeven?Ja, je kunt methoden definiëren die meerdere parameters accepteren.
Kan ik functies binnen mijn klassen gebruiken?Ja, methoden zijn niets anders dan functies die aan een klasse zijn gebonden.