Python Academy · Les

Magische methoden (__str__, __repr__, enz.)

Verdiep u in de speciale methoden van Python om het gedrag van objecten aan te passen

Les 6 van 611 stappen

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.

Magische methoden (__str__, __repr__, enz.) — illustratie 1

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 30

De __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: 30

De __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 functie len().
  • __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: 2

Veelgemaakte 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.

Magische methoden (__str__, __repr__, enz.) — illustratie 11
Gratis beginnen

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

  1. Klassen en objecten
  2. Attributen en methoden
  3. Overerving
  4. Polymorfisme
  5. Inkapseling en abstractie
  6. Magische methoden (__str__, __repr__, enz.)
← Terug naar Python Academy