Metody magiczne (__str__, __repr__ itd.)
Poznaj specjalne metody Pythona służące do dostosowywania zachowania obiektów.
Metody magiczne (__str__, __repr__ itd.) to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 6 z 6. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 6 lekcji w sumie.
Wprowadzenie do metod magicznych
Wprowadzenie do metod magicznych
Metody magiczne, nazywane także metodami dunder (skrót od angielskiego określenia „double underscore”), to specjalne metody w języku Python, które pozwalają definiować zachowanie obiektów w określonych sytuacjach.
W tej lekcji nauczą się Państwo korzystać z popularnych metod magicznych, takich jak __str__, __repr__ i inne.

Czym są metody magiczne?
Czym są metody magiczne?
Metody magiczne to predefiniowane metody w języku Python, które są wywoływane automatycznie podczas wykonywania określonych operacji na obiektach. Rozpoznaje się je po podwójnych znakach podkreślenia, na przykład __init__ lub __str__.
Metoda __init__
Metoda __init__
Metoda __init__ jest konstruktorem, który inicjalizuje nowy obiekt. Jest wywoływana automatycznie podczas tworzenia obiektu:
# 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 30Metoda __str__
Metoda __str__
Metoda __str__ definiuje tekstową reprezentację obiektu wyświetlaną po wywołaniu funkcji print():
# 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: 30Metoda __repr__
Metoda __repr__
Metoda __repr__ zapewnia oficjalną tekstową reprezentację obiektu, często używaną podczas debugowania:
# 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)Przeciążanie operatorów za pomocą metod magicznych
Przeciążanie operatorów za pomocą metod magicznych
Za pomocą metod magicznych można dostosować działanie operatorów, takich jak + lub ==:
# 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)Często używane metody magiczne
Często używane metody magiczne
Oto kilka często używanych metod magicznych:
__len__: definiuje działanie funkcjilen().__getitem__: umożliwia indeksowanie tak jak w przypadku listy lub słownika.__eq__: dostosowuje porównywanie równości za pomocą operatora==.
Korzystanie z __len__ i __getitem__
Korzystanie z __len__ i __getitem__
Można użyć __len__ do zdefiniowania długości niestandardowego obiektu, a __getitem__ do umożliwienia jego indeksowania:
# 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: 2Typowe błędy związane z metodami magicznymi
Typowe błędy związane z metodami magicznymi
Oto kilka błędów, których należy unikać:
- Definiowanie metody magicznej w sposób niezgodny z jej przeznaczeniem.
- Niepotrzebne przeciążanie operatorów.
- Zapominanie o implementacji wymaganych metod magicznych w niestandardowych typach danych.
Czego się nauczyliśmy
Czego się nauczyliśmy
W tej lekcji dowiedzieli się Państwo:
- Czym są metody magiczne i dlaczego są przydatne.
- Jak korzystać z popularnych metod magicznych, takich jak
__init__,__str__i__repr__. - Jak przeciążać operatory za pomocą metod magicznych.
Świetna praca! Przejdźmy do następnego tematu.

Często zadawane pytania
Czy lekcja „Metody magiczne (__str__, __repr__ itd.)” jest bezpłatna?
Tak — pełny tekst „Metody magiczne (__str__, __repr__ itd.)” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 6 lekcji w sumie.
Co nauczysz się w „Metody magiczne (__str__, __repr__ itd.)”?
Poznaj specjalne metody Pythona służące do dostosowywania zachowania obiektów. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?
Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 6 z 6.
Ile czasu zajmuje lekcja „Metody magiczne (__str__, __repr__ itd.)”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?
Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Klasy i obiekty
- Atrybuty i metody
- Dziedziczenie
- Polimorfizm
- Enkapsulacja i abstrakcja
- Metody magiczne (__str__, __repr__ itd.)