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:
1class Samochod: 2 def __init__(self, marka, model, rok): 3 self.marka = marka 4 self.model = model 5 self.rok = rok 6
W powyższym kodzie, __init__
to specjalna metoda nazywana konstruktorem, która inicjalizuje obiekt. Parametry self.marka
, self.model
i self.rok
to atrybuty klasy.
Tworzenie obiektów
Aby utworzyć obiekt z klasy Samochod
, wystarczy wywołać klasę z odpowiednimi argumentami:
1moj_samochod = Samochod("Toyota", "Corolla", 2020) 2
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.
1class ElektrycznySamochod(Samochod): 2 def __init__(self, marka, model, rok, zasięg): 3 super().__init__(marka, model, rok) 4 self.zasięg = zasięg 5
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:
1class KontoBankowe: 2 def __init__(self, imie, saldo): 3 self.imie = imie 4 self._saldo = saldo 5 6 def wyswietl_saldo(self): 7 return self._saldo 8
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.
1class Kot: 2 def dzwiek(self): 3 return "Miau" 4 5class Pies: 6 def dzwiek(self): 7 return "Hau" 8 9def wydaj_dzwiek(zwierze): 10 print(zwierze.dzwiek()) 11 12kot = Kot() 13pies = Pies() 14 15wydaj_dzwiek(kot) # Wyświetli: Miau 16wydaj_dzwiek(pies) # Wyświetli: Hau 17
Zakończenie
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!