Similar presentations:
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.
На сегодня достаточноЖду вас на следующих занятиях!
На забывайте тетрадь и ручку!