Co je OOP?

Úvod do objektově orientovaného programování v Pythonu

George Boorman

Curriculum Manager, DataCamp

Procedurální programování

 

  • Kód jako posloupnost kroků
  • Vhodné pro datovou analýzu

Schody

1 Image source: https://unsplash.com/@tateisimikito
Úvod do objektově orientovaného programování v Pythonu

Myšlení v posloupnostech

 

ikony osoby v posteli, kávy a aktovky

 

různé ikony představující mnoho aktivit

Úvod do objektově orientovaného programování v Pythonu

Procedurální programování

 

  • Kód jako posloupnost kroků
  • Vhodné pro datovou analýzu

Objektově orientované programování

 

  • Kód jako interakce objektů
  • Vhodné pro tvorbu softwaru
  • Udržovatelný a znovupoužitelný kód!
Úvod do objektově orientovaného programování v Pythonu

Objekty

$$\Large{\text{Objekt = data + funkcionalita}}$$

silueta osoby s laptopem představující zákazníka

                                                          Stav - data objektu

                                                  Chování - funkcionalita objektu

Úvod do objektově orientovaného programování v Pythonu

Objekty v Pythonu

  • V Pythonu je vše objekt
Objekt Typ
5 int
"Hello" str
pd.DataFrame() DataFrame
sum() function
... ...
Úvod do objektově orientovaného programování v Pythonu

Třídy jako šablony

  • Třída: šablona pro objekty definující možné stavy a chování

třída zákazníka

Úvod do objektově orientovaného programování v Pythonu

Třídy jako šablony

  • Třída: šablona pro objekty definující možné stavy a chování

třída zákazníka větvící se do objektů zákazníků

Úvod do objektově orientovaného programování v Pythonu

Třídy v Pythonu

  • Objekty stejného typu v Pythonu se chovají stejně
  • lists jsou třída
    • Vytvořeny hodnotami oddělenými čárkami [1, 2, 3, 4, 5]
    • Sdílejí stejné metody, např. .append()
  • Pro zjištění třídy použijte type()
type([1, 2, 3, 4, 5])
<class 'list'>
Úvod do objektově orientovaného programování v Pythonu

Atributy a metody

Stav ↔ atributy
import pandas as pd
df = pd.DataFrame({"a": [1,2,3], 
                   "b": [4,5,6]})

# shape attribute df.shape
(3, 2)
  • Pro přístup k atributům a metodám použijte obj.
Chování ↔ metody
import pandas as pd
df = pd.DataFrame({"a": [1,2,3], 
                   "b": [4,5,6]})

# head method df.head()
   a  b
0  1  4
1  2  5
2  3  6
Úvod do objektově orientovaného programování v Pythonu

Zobrazení atributů a metod

# Display attributes and methods
dir([1, 2, 3, 4])
['__add__',
 '__class__',
 '__contains__',
 '__delattr__', 
 ...
 'pop',
 'remove',
 'reverse',
 'sort']
# Display attributes and methods
dir(list)
['__add__',
 '__class__',
 '__contains__',
 '__delattr__', 
 ...
 'pop',
 'remove',
 'reverse',
 'sort']
Úvod do objektově orientovaného programování v Pythonu

Přehled pojmů

Pojem Definice
Třída Šablona/blueprint pro vytváření objektů
Objekt Kombinace dat a funkcionality; instance třídy
Stav Data spojená s objektem, přiřazená prostřednictvím atributů
Chování Funkcionalita objektu, definovaná prostřednictvím metod
Úvod do objektově orientovaného programování v Pythonu

Pojďme si to zopakovat!

Úvod do objektově orientovaného programování v Pythonu

Preparing Video For Download...