Magische methoden (__str__, __repr__, enz.)
Verdiep u in de speciale methoden van Python om het gedrag van objecten aan te passen
Magische methoden (__str__, __repr__, enz.) is een gratis Python Academy-les op CoddyKit. Dit is les 6 van 6. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Python Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Python Academy bevat in totaal 6 lessen.
Inleiding tot magische methoden
Magische methoden, ook wel dunder-methoden genoemd (een afkorting van 'dubbele underscore'), zijn speciale methoden in Python waarmee je kunt definiëren hoe objecten zich in specifieke situaties gedragen.
In deze les leer je hoe je veelgebruikte magische methoden zoals __str__, __repr__ en andere gebruikt.

Wat zijn magische methoden?
Magische methoden zijn vooraf gedefinieerde methoden in Python die automatisch worden aangeroepen wanneer specifieke bewerkingen op objecten worden uitgevoerd. Je herkent ze aan hun dubbele underscores, zoals bij __init__ of __str__.
De __init__-methode
De __init__-methode is een constructor die een nieuw object initialiseert. Deze wordt automatisch aangeroepen wanneer een object wordt gemaakt:
# Using the __init__ method to initialize attributes
class Person:
def __init__(self, name, age):
self.name = name # Initialize the name attribute
self.age = age # Initialize the age attribute
# Creating an instance of Person
person = Person("Alice", 30)
print(person.name, person.age) # Outputs: Alice 30De __str__-methode
De __str__-methode bepaalt de stringrepresentatie van een object wanneer print() wordt aangeroepen:
# Defining the __str__ method
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"Name: {self.name}, Age: {self.age}" # String representation
person = Person("Alice", 30)
print(person) # Outputs: Name: Alice, Age: 30De __repr__-methode
De __repr__-methode biedt een officiële stringrepresentatie van een object, die vaak wordt gebruikt voor foutopsporing:
# Defining the __repr__ method
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person('{self.name}', {self.age})" # Debug-friendly representation
person = Person("Alice", 30)
print(repr(person)) # Outputs: Person('Alice', 30)Operatoren overladen met magische methoden
Je kunt magische methoden gebruiken om het gedrag van operatoren zoals + of == aan te passen:
# Overloading the + operator with __add__
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Point(self.x + other.x, self.y + other.y) # Adding two points
def __str__(self):
return f"({self.x}, {self.y})"
point1 = Point(1, 2)
point2 = Point(3, 4)
result = point1 + point2 # Calls __add__
print(result) # Outputs: (4, 6)Veelgebruikte magische methoden
Dit zijn enkele veelgebruikte magische methoden:
__len__: Bepaalt het gedrag van de functielen().__getitem__: Maakt indexering mogelijk, zoals bij een lijst of woordenboek.__eq__: Past de gelijkheidsvergelijking met==aan.
__len__ en __getitem__ gebruiken
Je kunt __len__ gebruiken om de lengte van een aangepast object te definiëren en __getitem__ om het indexeerbaar te maken:
# Using __len__ and __getitem__ in a custom class
class CustomList:
def __init__(self, items):
self.items = items
def __len__(self):
return len(self.items) # Defines the behavior of len()
def __getitem__(self, index):
return self.items[index] # Enables indexing
custom_list = CustomList([1, 2, 3])
print(len(custom_list)) # Outputs: 3
print(custom_list[1]) # Outputs: 2Veelgemaakte fouten bij magische methoden
Dit zijn enkele fouten die je moet vermijden:
- Een magische methode definiëren zonder het bedoelde gedrag ervan te volgen.
- Operatoren onnodig overladen.
- Vergeten om vereiste magische methoden in aangepaste gegevenstypen te implementeren.
Wat hebben we geleerd?
In deze les heb je het volgende geleerd:
- Wat magische methoden zijn en waarom ze nuttig zijn.
- Hoe je veelgebruikte magische methoden zoals
__init__,__str__en__repr__gebruikt. - Hoe je operatoren met magische methoden overlaadt.
Goed gedaan! Laten we doorgaan naar het volgende onderwerp.

Leer Python met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 76
- Lessen
- 320
Veelgestelde vragen
Is de les “Magische methoden (__str__, __repr__, enz.)” gratis?
Ja — de volledige tekst van “Magische methoden (__str__, __repr__, enz.)” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Python Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Python Academy bevat in totaal 6 lessen.
Wat leer ik in “Magische methoden (__str__, __repr__, enz.)”?
Verdiep u in de speciale methoden van Python om het gedrag van objecten aan te passen Je oefent met Python Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Python Academy te beginnen?
Ervaring vooraf is niet nodig. Python Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 6 van 6.
Hoe lang duurt de les “Magische methoden (__str__, __repr__, enz.)”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Python Academy?
Ja. Elke les over Python Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Klassen en objecten
- Attributen en methoden
- Overerving
- Polymorfisme
- Inkapseling en abstractie
- Magische methoden (__str__, __repr__, enz.)