Co je OOP?

Object-Oriented Programming in Python

Alex Yarosh

Content Quality Analyst @ DataCamp

 

Procedurální programování

 

  • Kód jako posloupnost kroků
  • Vhodné pro analýzu dat
Object-Oriented Programming in Python

Myšlení v posloupnostech

 

ikony osoby v posteli, šálku kávy a aktovky

 

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

Object-Oriented Programming in Python

 

Procedurální programování

 

  • Kód jako posloupnost kroků
  • Vhodné pro analýzu dat a skripty

 

Objektově orientované programování

 

  • Kód jako interakce objektů
  • Vhodné pro tvorbu frameworků a nástrojů
  • Udržovatelný a znovupoužitelný kód!
Object-Oriented Programming in Python

Objekty jako datové struktury

$$\Large{\text{Objekt = stav + chování}}$$

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

 

$$\text{\textbf{Zapouzdření} - sdružení dat s kódem, který s nimi pracuje}$$

Object-Oriented Programming in Python

Třídy jako šablony

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

třída zákazníka

Object-Oriented Programming in Python

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ů

Object-Oriented Programming in Python

Objekty v Pythonu

  • V Pythonu je vše objekt
  • Každý objekt má třídu
  • Pro zjištění třídy použijte type()
import numpy as np
a = np.array([1,2,3,4])
print(type(a))
numpy.ndarray
Objekt Třída
5 int
"Hello" str
pd.DataFrame() DataFrame
np.mean function
... ...
Object-Oriented Programming in Python

Atributy a metody

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

# atribut shape a.shape
(4,)

 

  • Pro přístup k atributům a metodám použijte obj.
Chování ↔ metody
import numpy as np
a = np.array([1,2,3,4])

# metoda reshape a.reshape(2,2)
array([[1, 2],
       [3, 4]])
Object-Oriented Programming in Python

Objekt = atributy + metody

  • atribut ↔ proměnnáobj.my_attribute,

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

import numpy as np
a = np.array([1,2,3,4])
dir(a)                # <--- seznam všech atributů a metod
['T',
 '__abs__',
 ...
 'trace',
 'transpose',
 'var',
 'view']

Object-Oriented Programming in Python

Pojďme si to zopakovat!

Object-Oriented Programming in Python

Preparing Video For Download...