Python-klassen zijn als bouw­plan­nen of sjablonen. Je kunt ze gebruiken om her­bruik­ba­re code te schrijven in de vorm van klasse-at­tri­bu­ten en -methoden.

Wat zijn Python-klassen?

Een klasse is een abstract concept dat at­tri­bu­ten en methoden voor objecten be­schrijft. Een Python-klasse fungeert als een sjabloon voor het maken van concrete objecten, die in­stan­ties van de klasse zijn. Een klasse Car zou bij­voor­beeld at­tri­bu­ten zoals kleur en merk kunnen de­fi­ni­ë­ren, samen met methoden zoals __drive__ of __brake__.

Hoewel elk object van een klasse unieke at­tri­buut­waar­den kan hebben, delen objecten van dezelfde klasse methoden en een ba­sis­ge­drags­ka­der met andere in­stan­ties in de klasse. Het object my_car van de klasse Car kan bij­voor­beeld worden aan­ge­maakt met de kleur __red__ en het merk __Toyota__, maar de methoden __drive__ en __brake__ worden au­to­ma­tisch over­ge­dra­gen naar de instantie.

Hoe Python-klassen maken

In Python definieer je klassen met behulp van het sleu­tel­woord class.

class MyClass:
    # Constructor method called when creating an object
    def __init__(self, attribute1, attribute2):
        self.attribute1 = attribute1
        self.attribute2 = attribute2
    
    # Method defined within the class
    def my_method(self):
        return f"Attribute 1: {self.attribute1}, Attribute 2: {self.attribute2}"
python

De bo­ven­staan­de code de­fi­ni­eert een klasse met de naam MyClass. Deze heeft een con­struc­tor __init__, die wordt aan­ge­roe­pen bij het aanmaken van een object en twee at­tri­bu­ten ini­ti­a­li­seert: attribute1 en attribute2. De methode my_method re­tour­neert een op­ge­maak­te te­ken­reeks met de waarden van deze at­tri­bu­ten.

Om een object van deze klasse af te leiden, gebruik je de klas­se­naam gevolgd door haakjes:

object1 = MyClass("Value 1", "Value 2")
# Calling a method of the object
result = object1.my_method()
python

Voor­beel­den van het gebruik van Python-klassen

Python-klassen kunnen complexe systemen en relaties tussen ver­schil­len­de en­ti­tei­ten creëren. In de volgende secties laten we u zien hoe u met Python-klassen kunt werken.

__str()__ functie

De functie __str__() in Python is een speciale methode die u binnen Python-klassen kunt de­fi­ni­ë­ren. Wanneer deze wordt ge­ïm­ple­men­teerd, re­tour­neert deze een te­ken­reeks die een ge­bruiks­vrien­de­lij­ke weergave van een object ver­te­gen­woor­digt. U kunt de functie str() recht­streeks op een object gebruiken of deze com­bi­ne­ren met een print() in­struc­tie.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def __str__(self):
        return f"Name: {self.name}, Age: {self.age}"
person1 = Person("Alice", 30)
print(person1) # Output: Name: Alice, Age: 30
python

In de bo­ven­staan­de code maakt de methode __str__() binnen de klasse Person een op­ge­maak­te te­ken­reeks die de naam en leeftijd van een persoon weergeeft. Wanneer print(person1) wordt uit­ge­voerd, roept deze au­to­ma­tisch de methode __str__() van het object person1 aan en voert de te­ken­reeks uit die door de methode wordt ge­re­tour­neerd.

Methoden de­fi­ni­ë­ren in Python-klassen

In Python kun je methoden binnen een klasse de­fi­ni­ë­ren om be­wer­kin­gen op de objecten van de klasse uit te voeren. Deze methoden kunnen ver­vol­gens worden aan­ge­roe­pen door de objecten die worden aan­ge­maakt.

class Rectangle:
    def __init__(self, length, width):
        self.length = length
        self.width = width
    
    def area(self):
        return self.length * self.width
    def perimeter(self):
        return 2 * (self.length + self.width)
# Creating an object of the class
my_rectangle = Rectangle(5, 10)
# Calling methods of the object
area = my_rectangle.area()
perimeter = my_rectangle.perimeter()
# Printing the calculated values
print("Area =", area) # Output: Area = 50
print("Perimeter =", perimeter) # Output: Perimeter = 30
python

In het Python-voorbeeld de­fi­ni­ë­ren we de klasse Rectangle met twee methoden area() en perimeter(), die de op­per­vlak­te en omtrek van de rechthoek berekenen aan de hand van de lengte en breedte die tijdens de ini­ti­a­li­sa­tie van het object zijn opgegeven. In Python fungeert self in een klas­se­me­tho­de als een ver­wij­zing naar het object waarop de methode momenteel wordt toegepast.

Het object my_rectangle wordt aan­ge­maakt met een lengte van 5 en een breedte van 10. Ver­vol­gens roepen we de methoden area() en perimeter() aan op dit object om de bij­be­ho­ren­de waarden te berekenen.

De ei­gen­schap­pen van objecten wijzigen

De . -punt­ope­ra­tor kan worden gebruikt om toegang te krijgen tot de spe­ci­fie­ke at­tri­bu­ten van het object en hun waarden bij te werken. U kunt recht­streeks nieuwe waarden toewijzen aan het attribuut.

person1.name = "Sarah"
person1.age = 35
python

Het trefwoord del wordt gebruikt om de ei­gen­schap­pen van een object te ver­wij­de­ren.

del person1.name
python
Opmerking

Onthoud dat in­stan­tie­va­ri­a­be­len ver­schil­len van Python-klas­se­va­ri­a­be­len. Klas­se­va­ri­a­be­len worden buiten de con­struc­tor ge­de­fi­ni­eerd en kunnen alleen worden gewijzigd met behulp van de klas­se­naam.

Ga naar hoofdmenu