Cykl: Dekoratory w Pythonie – jak i kiedy używać · Część 6/10

Programowanie obiektowe w Pythonie - klasy i obiekty

Kacper Sieradziński
Kacper Sieradziński21 marca 2025 · 2 min czytania
Streszczenie
  • Tworzenie klas i obiektów w Pythonie
  • Definiowanie klas
  • Tworzenie obiektów
  • Dziedziczenie
Programowanie obiektowe w Pythonie - klasy i obiekty

Programowanie obiektowe (OOP) to paradygmat programowania, który ułatwia tworzenie kodu poprzez modelowanie rzeczywistego świata z użyciem obiektów. W Pythonie, jednym z najpopularniejszych języków programowania, OOP jest szeroko stosowane dzięki swojej czytelności i prostocie. Po przeczytaniu tego artykułu, zrozumiesz, jak tworzyć klasy i obiekty w Pythonie, oraz poznasz kluczowe pojęcia związane z OOP, takie jak dziedziczenie, polimorfizm czy enkapsulacja.

Tworzenie klas i obiektów w Pythonie

Podstawowymi elementami programowania obiektowego są klasy i obiekty. Klasa to szablon definiujący właściwości i zachowania, które mogą być przypisane do obiektu. Obiekt zaś jest instancją tej klasy.

Definiowanie klas

Aby zdefiniować klasę w Pythonie, używamy słowa kluczowego class, a następnie nazwy klasy. Oto prosty przykład:

Python
1 2 3 4 5 class Samochod: def __init__(self, marka, model, rok): self.marka = marka self.model = model self.rok = rok

W powyższym kodzie, __init__ to specjalna metoda nazywana konstruktorem, która inicjalizuje obiekt. Parametry self.marka, self.modelself.rok to atrybuty klasy.

Tworzenie obiektów

Aby utworzyć obiekt z klasy Samochod, wystarczy wywołać klasę z odpowiednimi argumentami:

Python
1 moj_samochod = Samochod("Toyota", "Corolla", 2020)

W ten sposób stworzyliśmy obiekt moj_samochod, który posiada określone cechy: markę, model i rok.

Kluczowe pojęcia programowania obiektowego

Programowanie obiektowe opiera się na kilku kluczowych koncepcjach, które ułatwiają zarządzanie złożonymi systemami.

Dziedziczenie

Dziedziczenie pozwala tworzyć nową klasę na podstawie istniejącej. Dzięki temu możemy zwiększyć możliwości klasy bazowej bez zmieniania jej kodu.

Python
1 2 3 4 class ElektrycznySamochod(Samochod): def __init__(self, marka, model, rok, zasięg): super().__init__(marka, model, rok) self.zasięg = zasięg

Klasa ElektrycznySamochod dziedziczy od Samochod, co oznacza, że przejmuje jej atrybuty i metody. Dodaje też nowy atrybut zasięg.

Enkapsulacja

Enkapsulacja to koncepcja ukrywania danych obiektu przed dostępem z zewnątrz i kontrolowania dostępu do nich. W Pythonie używamy do tego konwencji nazewniczej z podkreśleniem:

Python
1 2 3 4 5 6 7 class KontoBankowe: def __init__(self, imie, saldo): self.imie = imie self._saldo = saldo def wyswietl_saldo(self): return self._saldo

Atrybut _saldo jest prywatny, a jego modyfikacja możliwa jest tylko przez metody klasy.

Polimorfizm

Polimorfizm pozwala na używanie jednej nazwy metody w różnych klasach. Dzięki temu można pisać bardziej elastyczny kod.

Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class Kot: def dzwiek(self): return "Miau" class Pies: def dzwiek(self): return "Hau" def wydaj_dzwiek(zwierze): print(zwierze.dzwiek()) kot = Kot() pies = Pies() wydaj_dzwiek(kot)# Wyświetli: Miau wydaj_dzwiek(pies) # Wyświetli: Hau

Zakończenie

Newsletter · co środę

Python co tydzień — newsletter dla programistów

Otrzymuj codzienne ćwiczenia, ciekawostki z ekosystemu Pythona i wskazówki do rozmów rekrutacyjnych.

2 312 czytelników · ⭐ 4,8
Kurs · 24 lekcje8h 14m
Kurs

Kurs Python dla początkujących — PyStart

Zacznij programować w Pythonie! Idealne dla osób bez doświadczenia. Praktyczne zadania, projekty i wsparcie społeczności.

  • 24 lekcje wideo + 80 ćwiczeń
  • Realne bazy z e-commerce
  • Społeczność i code-review
499 zł799 zł−38%
Rozpocznij naukę

Teraz, gdy znasz podstawy programowania obiektowego w Pythonie, możesz wykorzystać te koncepcje do tworzenia bardziej złożonych i elastycznych aplikacji. Więcej informacji i przykłady kodu znajdziesz w artykule "Zaawansowane techniki OOP w Pythonie". Zachęcamy do dalszej nauki i praktycznego stosowania OOP w swoich projektach!

Klasy w Pythonie to fundament frameworków webowych. W Django modele to właśnie klasy - zobacz, jak to wygląda w praktyce w wprowadzeniu do Django.

Część 7 z 10

Refaktoryzacja kodu w Pythonie – jak poprawiać bez psucia

druga lekcja cyklu „Dekoratory w Pythonie – jak i kiedy używać"

Czytaj kolejny →