Что такое ООП?

Объектно-ориентированное программирование на Python

Alex Yarosh

Content Quality Analyst @ DataCamp

 

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

 

  • Код как последовательность шагов
  • Отлично подходит для анализа данных
Объектно-ориентированное программирование на Python

Мышление последовательностями

 

иконки: человек в постели, кофе, портфель

 

набор иконок, представляющих различные виды деятельности

Объектно-ориентированное программирование на Python

 

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

 

  • Код как последовательность шагов
  • Отлично подходит для анализа данных и скриптов

 

Объектно-ориентированное программирование

 

  • Код как взаимодействие объектов
  • Отлично подходит для создания фреймворков и инструментов
  • Удобный в сопровождении и повторном использовании код!
Объектно-ориентированное программирование на Python

Объекты как структуры данных

$$\Large{\text{Object = state + behavior}}$$

силуэт человека с ноутбуком, символизирующий клиента

 

$$\text{\textbf{Encapsulation} - bundling data with code operating on it}$$

Объектно-ориентированное программирование на Python

Классы как шаблоны

  • Класс : шаблон для объектов, описывающий возможные состояния и поведение

класс клиента

Объектно-ориентированное программирование на Python

Классы как шаблоны

  • Класс : шаблон для объектов, описывающий возможные состояния и поведение

класс клиента, из которого образуются объекты-клиенты

Объектно-ориентированное программирование на 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 attribute a.shape
(4,)

 

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

# reshape method a.reshape(2,2)
array([[1, 2],
       [3, 4]])
Объектно-ориентированное программирование на Python

Объект = атрибуты + методы

  • атрибут ↔ переменныеobj.my_attribute,

  • метод ↔ функция()obj.my_method().

import numpy as np
a = np.array([1,2,3,4])
dir(a)                # <--- list all attributes and methods
['T',
 '__abs__',
 ...
 'trace',
 'transpose',
 'var',
 'view']

Объектно-ориентированное программирование на Python

Давайте потренируемся!

Объектно-ориентированное программирование на Python

Preparing Video For Download...