Cursus
Een objectgeoriënteerde aanpak is vooral handig wanneer je code complexe interacties tussen veel objecten bevat. In echte productiecode kunnen klassen tientallen attributen en methoden met ingewikkelde logica hebben, maar de onderliggende structuur is hetzelfde als bij de meest eenvoudige klasse.
Klassen zijn net blauwdrukken voor objecten die het mogelijke gedrag en de toestanden schetsen die elk object van een bepaald type kan hebben. Als je bijvoorbeeld zegt: "elke klant heeft een telefoonnummer en een e-mailadres, en kan bestellingen plaatsen en annuleren", dan heb je zojuist een klasse gedefinieerd! Zo kun je op een eenduidige manier over klanten praten. Een specifiek Customer-object is vervolgens gewoon een uitwerking van deze klasse met een bepaalde toestandswaarde.

Python-klassen vinden
In Python is alles een object. Nummers, strings, DataFrames, zelfs functies zijn objecten. Alles waar je in Python mee werkt heeft een klasse, een blauwdruk die er onder de motorkap aan gekoppeld is. Het bestaan van deze uniforme interfaces is de reden waarom je bijvoorbeeld elke DataFrame op dezelfde manier kunt gebruiken.
Je kunt type() aanroepen op elk Python-object om de klasse te achterhalen. De klasse van een numpy-array heet bijvoorbeeld ndarray (voor n-dimensionale array).
import numpy as np
a = np.array([1,2,3,4])
print(type(a))
numpy.ndarray
Klassen bevatten informatie over toestand en gedrag. Toestandsinformatie in Python staat in attributen en informatie over gedrag in methoden.
Attributen en methoden
Neem een numpy-array: je hebt al sommige van de methoden en attributen gebruikt!
Elke numpy-array heeft bijvoorbeeld een attribuut "shape" dat je kunt benaderen door de naam van de array te specificeren gevolgd door een punt en shape.
Toestand <--> Attributen
import numpy as np
a = np.array([1,2,3,4])
# shape attribute
a.shape
(4,)
Het heeft ook methoden zoals max en reshape die eveneens via puntnotatie toegankelijk zijn.
Gedrag <--> Methoden
import numpy as np
a = np.array([1,2,3,4])
# reshape method
a.reshape(2,2)
array([[1, 2],
[3, 4]])
Je eerste klasse maken
In dit voorbeeld maak je een lege klasse Employee. Vervolgens maak je een object emp van de klasse Employee door Employee() aan te roepen.
Probeer het attribuut .name van het object emp in de console te printen. Wat gebeurt er?
# Create an empty class Employee
class Employee:
pass
# Create an object emp of class Employee
emp = Employee()
Wil je meer leren over objectgeoriënteerd programmeren in Python? Bekijk dan deze video uit onze cursus Object-Oriented Programming in Python.
Deze content is afkomstig uit DataCamp’s cursus Object-Oriented Programming in Python van Aliaksandra Yarosh.
Bekijk ook DataCamp's Python Object-Oriented Programming (OOP) Tutorial.
