Що таке ООП?

Об'єктноорієнтоване програмування в Python

Alex Yarosh

Content Quality Analyst @ DataCamp

 

Процедурне програмування

 

  • Код як послідовність кроків
  • Чудово для аналізу даних
Об'єктноорієнтоване програмування в Python

Мислення послідовностями

 

іконки: людина в ліжку, потім кава, потім портфель

 

набір іконок, що показують різні дії

Об'єктноорієнтоване програмування в Python

 

Процедурне програмування

 

  • Код як послідовність кроків
  • Чудово для аналізу даних і скриптів

 

Обʼєктно-орієнтоване програмування

 

  • Код як взаємодія обʼєктів
  • Чудово для створення фреймворків і інструментів
  • Супровідний і багаторазовий код!
Об'єктноорієнтоване програмування в Python

Обʼєкти як структури даних

$$\Large{\text{Обʼєкт = стан + поведінка}}$$

силует людини з ноутбуком, що уособлює клієнта

 

$$\text{\textbf{Інкапсуляція} — обʼєднання даних із кодом, що їх обробляє}$$

Об'єктноорієнтоване програмування в Python

Класи як креслення

  • Клас: креслення обʼєктів із можливими станами та поведінками

клас customer

Об'єктноорієнтоване програмування в Python

Класи як креслення

  • Клас: креслення обʼєктів із можливими станами та поведінками

клас customer, від якого відгалужуються обʼєкти customer

Об'єктноорієнтоване програмування в Python

Обʼєкти в Python

  • У Python усе є обʼєктом
  • Кожен обʼєкт має клас
  • Скористайтеся type(), щоб дізнатися клас
import numpy as np
a = np.array([1,2,3,4])
print(type(a))
numpy.ndarray
Обʼєкт Клас
5 int
"Hello" str
pd.DataFrame() DataFrame
np.mean function
... ...
Об'єктноорієнтоване програмування в Python

Атрибути та методи

Стан ↔ атрибути
import numpy as np
a = np.array([1,2,3,4])

# атрибут shape a.shape
(4,)

 

  • Використовуйте obj., щоб звертатися до атрибутів і методів
Поведінка ↔ методи
import numpy as np
a = np.array([1,2,3,4])

# метод reshape a.reshape(2,2)
array([[1, 2],
       [3, 4]])
Об'єктноорієнтоване програмування в Python

Обʼєкт = атрибути + методи

  • атрибут ↔ змінніobj.my_attribute,

  • метод ↔ function()obj.my_method().

import numpy as np
a = np.array([1,2,3,4])
dir(a)                # <--- перелік усіх атрибутів і методів
['T',
 '__abs__',
 ...
 'trace',
 'transpose',
 'var',
 'view']

Об'єктноорієнтоване програмування в Python

Підсумуємо!

Об'єктноорієнтоване програмування в Python

Preparing Video For Download...