*15.4 Classes en objecten aanmaken

Bekijk figuur 15-3 hieronder. In deze figuur zie je een class Persoon.

 

Figuur 15-3

 

Peter, paul en mary zijn de objecten, de zgn. instances, van de class Persoon. In de class Persoon is bijvoorbeeld gedefinieerd hoe een persoon eruit ziet. Een persoon heeft een naam, leeftijd, haren, handen, voeten, ogen, oren, e.d. Dit is dus de blauwdruk voor een persoon. In een instance (dus het object dat uit een class is gecreëerd) kun je de personen uniek maken door de persoon eigenschappen mee te geven. Zo kun je als eigenschap een bepaalde kleur aan de ogen en haren mee te geven. Op die manier maak je de persoon uniek.
Elk object is dus een instance van de class en heeft soortgelijke eigenschappen en kan soortgelijke taken uitvoeren als de andere objecten in de class.

In Python maak je een class met de keyword class gevolgd door de naam van de class en een dubbele punt :. In figuur 15-4 zie je een voorbeeld van hoe een class en object worden aangemaakt.


Figuur 15-4

 

Alle classes hebben een  __init__() functie (zie regel 3 in figuur 15-4). Door de naam van de class te gebruiken kun je een object creëren. De waarden van het object kun je meegeven door gebruik te maken van de __init__() functie (zie regel 8 en 11 in figuur 15-4). De __init__() functie wordt gebruikt om waarden aan object eigenschappen toe te kennen. Deze wordt elke keer aangeroepen wanneer een object wordt aangemaakt.

Methoden in objecten

Objecten kunnen ook methoden bevatten. Dat zijn functies die horen bij een object. Zie figuur 15-5.


Figuur 15-5

 

Het aanroepen van een object gaat dus als volgt: object.eigenschappen (zie figuur 15-4 regel 15 voor een voorbeeld) of object.methode (zie figuur 15-5 regel 15 voor een voorbeeld).

De self parameter in regel 4 van figuur 15-5 is een referentie naar de huidige instance van de class en wordt gebruikt om variabelen te benaderen die behoren tot de classes. De naam van de self parameter kun je zelf kiezen, mits het de eerste parameter is van elke functie in de class.