0Pricing
Learn AI with Python · Lekcja

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.

Metody magiczne (__str__, __repr__ itd.) — ilustracja 1

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 30

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

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

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

Metody magiczne (__str__, __repr__ itd.) — ilustracja 11

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

  1. Klasy i obiekty
  2. Atrybuty i metody
  3. Dziedziczenie
  4. Polimorfizm
  5. Enkapsulacja i abstrakcja
  6. Metody magiczne (__str__, __repr__ itd.)
← Powrót do Learn AI with Python