380.98K
Категория: ПрограммированиеПрограммирование

python10_1

1.

2.

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ
ПРОГРАММИРОВАНИЕ.
ОСНОВЫ

3.

ООП | Основы
Забудьте то, что мы учили до этого
Циклы, ветвления и функции –элементы структурного
программирования.
Удобно, но слабо похоже на жизнь

4.

ООП | Основы
Нас окружают объекты реального мира, а не
переменные, циклы и массивы.
Модель реального мира была перенесена в языки
программирования и стала называться «ООП»

5.

ООП | Основы
Что вокруг нас?
СТУЛ1
Кол-во ножек: 4
Спинка: есть
Цвет: фиолетовый
Материал: иск.кожа

6.

ООП | Основы
Что вокруг нас?
СТУЛ2
Кол-во ножек: 3
Спинка: есть
Цвет: желтый
Материал: лён

7.

ООП | Основы
Что вокруг нас?
СТУЛ
Кол-во ножек: ? (обычно 4)
Спинка: ? (чаще есть)
Цвет: ?
Материал: ?
?

8.

ООП | Основные понятия
Класс: Школьные доски
Объект: Доска 206
Поле (свойство): цвет – белый, для маркера - да
Метод – перевернуться, катиться

9.

ООП | Основные понятия
Класс — тип, описывающий устройство объектов,
(схема, по которой построены объекты)
Объект — экземпляр класса.
Свойства (поля) – отличительные особенности
конкретного объекта
Методы – то, что умеет каждый объект класса

10.

ООП | Создание классов
Как создать класс?
class название_класса:
тело класса
Пример:
class Human:
pass

11.

pass – пустота. Оператор-заглушка.
Зачастую pass используется там, где код
пока ещё не появился, но планируется

12.

ООП | Создание объектов
Как создать объект класса?
имя_переменной = название_класса()
Пример:
class Human:
pass
h1=Human()

13.

ООП | Создание объектов
h1=Human()
Теперь появился объект, экземпляр класса Human с
названием h1.

14.

ООП | Создание объектов
Мы рассматривали класс как некий шаблон для создания
объектов. Но в данном примере у класса нет полей – python
поддерживает динамическое добавление полей:
h1=Human()
h1.name=“Pavel”
h1.surname=“Durov”
h1.age=34

15.

ООП | Создание объектов
О чем это говорит? Это говорит о том, что если создать еще
один объект этого же класса, то для него можно создать
абсолютно другой набор полей данных
h2=Human()
h2.city=“Petersburg”
h2.job=“Programmer”

16.

ООП | Создание объектов
При этом h1 не будет подозревать о полях city и job, точно так
же как и h2 ничего не знает о полях name, surname и age
h2=Human()
h2.city=“Petersburg”
h2.job=“Programmer”

17.

ООП | Создание объектов
Иногда это бывает удобно, но иногда это вводит
дополнительные сложности и заблуждения. Поэтому поля
класса лучше объявить в теле класса, а потом к ним
обращаться:
class Human:
name=“”
h1=Human()
h1.name=“Иван”

18.

ООП | Создание объектов
Помимо полей классы могут иметь методы – функции,
обрабатывающие значения полей (то, что умеют объекты)
class Human:
name=“”
def printName(self):
return “Меня зовут ”+self.name

19.

ООП | Создание объектов
В аргументах функции перед полями, всякий раз когда они
встречаются в функции стоит слово self.
self нужен для того, чтобы указать, что данный член относится
к текущему объекту, о котором идет речь.
В методах аргумент self обязателен.

20.

ООП | Создание объектов
*пример на практике*

21.

Конструктор

22.

ООП | Конструктор
На примере заметили, что описание значений полей
занимает много времени и места. Эту работу можно
сократить, используя конструкторы.
Конструктор – функция, которая «конструирует» объект –
заполняет его поля переданными в нее значениями

23.

ООП | Конструктор
В языке Python конструктором является функция _ _init_ _():
class Human:
name=""
surname="
def __init__(self,name,surname):
self.name=name
self.surname=surname

24.

ООП | Конструктор
__init__() как обычная функция принимает в себя все нужные
данные и присваивает их полям объекта.
А отправить данные можно просто при создании объекта:
h1=Human("Кирилл", "Самсонов")

25.

class Human:
name=""
surname=""
age=0
def __init__(self,name,surname,age):
self.name=name
self.surname=surname
self.age=age
def getInfo(self):
return f'Меня зовут {self.name} {self.surname}. Мне {self.age} лет'
def main():
h1=Human("Кирилл", "Самсонов", 16)
print(h1.getInfo())
main()

26.

Практика

27.

Описать класс Country, который содержит поля:
Materic, ContryName, Capital, Square, Language,
PeopleCount.
Описать конструктор и два метода:
Первый выводит полную информацию о стране в
удобном для чтения виде. Второй – краткую
(Материк, название, столица)

28.

Вводится и сохранятся в информация об n учениках в
формате: (n>5, n вводится)
Фамилия Имя Рост Вес Возраст поля
Сформировать и вывести в читабельном формате два списка
детей: дети до 14 лет и после 14 лет и всю информацию о них

29.

На сегодня достаточно
Жду вас на следующих занятиях!
На забывайте тетрадь и ручку!
English     Русский Правила