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

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

George Boorman

Curriculum Manager, DataCamp

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

 

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

Лестница

1 Image source: https://unsplash.com/@tateisimikito
Введение в объектно-ориентированное программирование на Python

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

 

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

 

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

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

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

 

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

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

 

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

Объекты

$$\Large{\text{Object = data + functionality}}$$

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

                                                          Состояниеданные объекта

                                                  Поведениефункциональность объекта

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

Объекты в Python

  • В Python всё является объектом
Объект Тип
5 int
"Hello" str
pd.DataFrame() DataFrame
sum() function
... ...
Введение в объектно-ориентированное программирование на Python

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

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

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

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

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

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

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

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

Классы в Python

  • Объекты одного типа в Python ведут себя одинаково
  • lists — это класс
    • Создаётся через значения, разделённые запятыми: [1, 2, 3, 4, 5]
    • Все экземпляры имеют одинаковые методы, например .append()
  • Используйте type(), чтобы узнать класс объекта
type([1, 2, 3, 4, 5])
<class 'list'>
Введение в объектно-ориентированное программирование на Python

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

Состояние ↔ атрибуты
import pandas as pd
df = pd.DataFrame({"a": [1,2,3], 
                   "b": [4,5,6]})

# shape attribute df.shape
(3, 2)
  • Используйте obj. для доступа к атрибутам и методам
Поведение ↔ методы
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
Введение в объектно-ориентированное программирование на Python

Просмотр атрибутов и методов

# 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']
Введение в объектно-ориентированное программирование на Python

Шпаргалка

Термин Определение
Класс Шаблон/чертёж для создания объектов
Объект Сочетание данных и функциональности; экземпляр класса
Состояние Данные, связанные с объектом и хранящиеся в атрибутах
Поведение Функциональность объекта, определяемая через методы
Введение в объектно-ориентированное программирование на Python

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

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

Preparing Video For Download...