Czym jest OOP?

Programowanie obiektowe w Pythonie

Alex Yarosh

Content Quality Analyst @ DataCamp

 

Programowanie proceduralne

 

  • Kod jako sekwencja kroków
  • Świetne do analizy danych
Programowanie obiektowe w Pythonie

Myślenie sekwencyjne

 

ikony osoby w łóżku, kawy i teczki

 

zestaw ikon reprezentujących różne czynności

Programowanie obiektowe w Pythonie

 

Programowanie proceduralne

 

  • Kod jako sekwencja kroków
  • Świetne do analizy danych i skryptów

 

Programowanie obiektowe

 

  • Kod jako interakcje obiektów
  • Świetne do budowania frameworków i narzędzi
  • Kod łatwy w utrzymaniu i wielokrotnym użyciu!
Programowanie obiektowe w Pythonie

Obiekty jako struktury danych

$$\Large{\text{Obiekt = stan + zachowanie}}$$

sylwetka osoby z laptopem reprezentująca klienta

 

$$\text{\textbf{Enkapsulacja} - łączenie danych z kodem, który na nich operuje}$$

Programowanie obiektowe w Pythonie

Klasy jako szablony

  • Klasa : szablon obiektów określający możliwe stany i zachowania

klasa klienta

Programowanie obiektowe w Pythonie

Klasy jako szablony

  • Klasa : szablon obiektów określający możliwe stany i zachowania

klasa klienta rozgałęziająca się na obiekty klienta

Programowanie obiektowe w Pythonie

Obiekty w Pythonie

  • W Pythonie wszystko jest obiektem
  • Każdy obiekt ma klasę
  • Użyj type(), aby sprawdzić klasę
import numpy as np
a = np.array([1,2,3,4])
print(type(a))
numpy.ndarray
Obiekt Klasa
5 int
"Hello" str
pd.DataFrame() DataFrame
np.mean function
... ...
Programowanie obiektowe w Pythonie

Atrybuty i metody

Stan ↔ atrybuty
import numpy as np
a = np.array([1,2,3,4])

# atrybut shape a.shape
(4,)

 

  • Użyj obj. do dostępu do atrybutów i metod
Zachowanie ↔ metody
import numpy as np
a = np.array([1,2,3,4])

# metoda reshape a.reshape(2,2)
array([[1, 2],
       [3, 4]])
Programowanie obiektowe w Pythonie

Obiekt = atrybuty + metody

  • atrybut ↔ zmienneobj.my_attribute,

  • metoda ↔ funkcja()obj.my_method().

import numpy as np
a = np.array([1,2,3,4])
dir(a)                # <--- lista wszystkich atrybutów i metod
['T',
 '__abs__',
 ...
 'trace',
 'transpose',
 'var',
 'view']

Programowanie obiektowe w Pythonie

Powtórzenie!

Programowanie obiektowe w Pythonie

Preparing Video For Download...