Czym są metody dunder w Pythonie?

Metody dunder, znane również jako magic methods lub special methods, to specjalne metody predefiniowane w Pythonie, których nazwy zaczynają się i kończą podwójnym podkreśleniem, np. __init__ czy __str__. Są one kluczowym elementem, dzięki któremu Python wspiera programowanie obiektowe, umożliwiając definiowanie zachowań dla operacji takich jak inicjalizacja obiektu, reprezentacja obiektu jako string, operacje arytmetyczne i wiele innych. W tym artykule przyjrzymy się bliżej, jak działają metody dunder na przykładzie klasy reprezentującej książkę.

Przykład użycia metod dunder

Stwórzmy klasę Book, która będzie wykorzystywać metody dunder do wykonania podstawowych operacji takich jak inicjalizacja, reprezentacja obiektu jako string i dodawanie dwóch obiektów klasy.

class Book:
    def __init__(self, title, author, pages):
        # Inicjalizacja atrybutów obiektu
        self.title = title
        self.author = author
        self.pages = pages
    
    def __str__(self):
        # Reprezentacja obiektu jako string
        return f"{self.title} by {self.author}"
    
    def __add__(self, other):
        # Dodawanie liczby stron dwóch książek
        if isinstance(other, Book):
            return self.pages + other.pages
        return NotImplemented

# Tworzenie obiektów klasy Book
book1 = Book("Python 101", "Jan Kowalski", 250)
book2 = Book("Advanced Python", "Anna Nowak", 300)

# Wyświetlenie reprezentacji obiektów jako string
print(book1)  # Wypisze: Python 101 by Jan Kowalski
print(book2)  # Wypisze: Advanced Python by Anna Nowak

# Dodawanie obiektów klasy Book
total_pages = book1 + book2
print(f"Łączna liczba stron: {total_pages}")

Podsumowanie

Metody dunder w Pythonie umożliwiają programistom definiowanie specyficznych zachowań dla obiektów ich klas, takich jak operacje arytmetyczne, konwersje na stringi i wiele innych. Dzięki temu można tworzyć kod, który jest czytelniejszy, bardziej ekspresyjny i lepiej oddaje zamiary programisty. Jak pokazano na przykładzie, stosowanie tych metod pozwala na łatwe i intuicyjne zarządzanie obiektami oraz interakcje między nimi, co czyni Pythona językiem przyjaznym i elastycznym w użyciu.

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Python w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

Scroll to Top