Przejdź do treści
Wróć do kursuProgramowanie / Lekcja 7 z 8

Lekcja 7 / obiekty

Klasy i obiekty: gdy dane i zachowanie mają być razem

Słownik jest dobry na start, ale gdy dane i funkcje zaczynają chodzić parami, klasa pomaga trzymać je razem.

Sytuacja z pracy

Masz lekcję z tytułem i statusem ukończenia. Chcesz oznaczać ją jako ukończoną i pytać o czytelny status. Słownik plus osobna funkcja działa, ale przy większej liczbie lekcji robi się niewygodnie.

Najpierw wersja ze słownikiem

lesson = {
    "title": "Zmienne",
    "completed": False
}

def mark_completed(lesson):
    lesson["completed"] = True

mark_completed(lesson)
print(lesson)

Problem

Dane lekcji są w jednym miejscu, a zachowanie w osobnej funkcji. Da się tak żyć, ale przy większym programie łatwo pogubić, które funkcje pasują do których danych. Klasa pozwala opisać własny typ rzeczy: na przykład lekcję.

Kod: klasa Lesson

class Lesson:
    def __init__(self, title):
        self.title = title
        self.completed = False

    def mark_completed(self):
        self.completed = True

    def status_text(self):
        if self.completed:
            return self.title + " - ukończona"
        return self.title + " - do zrobienia"


lesson = Lesson("Zmienne")
print(lesson.status_text())

lesson.mark_completed()
print(lesson.status_text())

Wynik

Zmienne - do zrobienia
Zmienne - ukończona

Jak to czytać?

class
Przepis na obiekt, np. lekcję.
object
Konkretny egzemplarz klasy, np. lekcja „Zmienne”.
self.title
Dane należące do konkretnego obiektu.
method
Funkcja należąca do klasy, np. mark_completed.

Mini-zadanie

Utwórz drugi obiekt: Lesson("Warunki") i wypisz jego status.

Ćwiczenie praktyczne

Dodaj do klasy atrybut duration_minutes. Ustaw go w __init__ i dopisz metodę, która zwraca tekst z tytułem oraz czasem trwania.

Quiz

Czym jest klasa?

Przepisem na obiekty danego typu.

Czym jest obiekt?

Konkretnym egzemplarzem klasy.

Po co jest self?

Żeby metoda mogła pracować na danych konkretnego obiektu.

Co dalej?

W finale połączysz klasy Lesson i Course w mały tracker postępu.

Ty wybierasz, co zapamiętuję.

Niezbędne cookies obsługują konto i zapis prób. Jeśli chcesz, możesz włączyć analitykę publicznych stron i pamięć zaproszenia do newslettera. Sam newsletter wymaga osobnego zapisu. Szczegóły w polityce prywatności.

List z warsztatu

Podeślę Ci
coś ciekawego.

Co jakiś czas podeślę Ci nowe materiały o IT i dam znać o kursach. Jeśli masz ochotę, zostaw swój e-mail.

Zapis aktywuje się dopiero po potwierdzeniu adresu. Bezpłatnie, bez obowiązku zakupu. Konto kursanta ma osobne zgody.