Файл: Введение в объектноориентированное программирование.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.12.2023

Просмотров: 139

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Урок - лекция

Уровень: Программирование для начинающих

Созданиеклассовиобъектов.Урок2

Методическая разработка урока

Уровень: Программирование для начинающих

Создание классов:

Создание объектов:

Self:

Первая ОО-программа:

Усложняем программу:

Практическая работа:

Конструкторкласса—метод init .Урок3

Методическая разработка урока

Уровень: Программирование для начинающих

Практическая работа:

Методическая разработка урока

Уровень: Программирование для начинающих

Практическая работа

Методическая разработка урока

Полиморфизм

Переопределение методов

Вывод

Практическая работа

Методическая разработка урока

Уровень: Программирование для начинающих

Описание задачи

Создание классов-частей

Создание класса-контейнера

Создание объектов

Практическая работа

Модулииихимпорт. Урок8

Методическая разработка урока

Уровень: Программирование для начинающих

Практическая работа:

Методическая разработка урока

doc- строки документации

Форматирование строк документирования

Функция help

Практическая работа

Пример документированного исходного кода

ПерегрузкаоператороввООП.Урок10

Методическая разработка урока

Уровень: Программирование для начинающих

Особенностиобъектно-ориентированногопрограммирования.Урок11

Методическая разработка урока

Уровень: Программирование для начинающих

Идеи (принципы) объектно-ориентированного программирования

Преимущества ООП

Особенность ООП

Особенности ООП в Python

Методическая разработка урока

Уровень: Программирование для начинающих

Практическая работа

Практическая работа:


  1. Спишите представленные выше скрипт с классом Building. Запустите программу, объясните как она работает. В какой момент создается атрибут where объектов? Зачем потребовалось конструкцию if-elif-else вынести в отдельную функцию, а не оставить ее в методе init?

  2. Самостоятельно придумайте класс, содержащий конструктор. Создайте на его основе несколько объектов.
НаследованиевООПнаPython.Урок4

Методическая разработка урока


Элективный курс: Введение в объектно-ориентированноепрограммированиенаPython

Уровень: Программирование для начинающих


Одной из важнейших особенностей ООП является возможность наследования объектами атрибутов классов, а также наследование одними классами атрибутов других классов. На самом деле с наследованием мы уже сталкивались, когда создавали любой объект в Python: объекты наследуют атрибуты класса, хотя могут иметь и индивидуальные.


  1. class Things:

  2. definit(self,n,t):

  3. self.namething = n

  4. self.total = t 5.

  1. th1 = Things("table", 5)

  2. th2 = Things("computer", 7) 8.

  1. print (th1.namething,th1.total) #Вывод:table5

  2. print (th2.namething,th2.total) #Вывод:computer7



  3. th1.color = "green" #новоесвойствообъектаth1



  4. print (th1.color) #Вывод:green

  5. print (th2.color) #ОШИБКА:уобъектаth2нетсвойстваcolor!


Здесь оба объекта имеют свойства namething и total, однако только у первого объекта есть свойство color. Все просто: атрибуты класса
наследуются объектами, созданными на его основе; однако атрибуты конкретного объекта не зависят от атрибутов других объектов и представляют собственное пространство имен объекта. Последнее позволяет объектам одного класса иметь различные значения атрибутов, а если потребуется и различный набор атрибутов.
Задание. Спишитекод,выполнитеегоспомощьюинтерпретатораPython.Какможноисправитькод,чтобынебылоошибки?Исправьте.

На самом деле, наследование более широкое понятие, чем просто взаимосвязь между классами и объектами. Один класс может быть подклассом другого, дополняя его. Пояснить это можно проведя аналогию с реальным миром. Например, все столы имеют общие характерные черты («класс»), при этом они имеют разное назначение («подклассы»), хотя продолжают наследовать общие черты. В результате того, что есть такой механизм как наследование можно избежать избыточность кода, просто описав общие свойства и методы в надклассах.
По поводу терминологии. Классы, атрибуты которых наследуются другими классами, могут называть как надклассами так и суперклассами. Классы, которые наследуют атрибуты других классов, часто называют подклассами.
Класс, являющийся надклассом по отношению к одному классу, сам может быть подклассом по отношению к другому. Другими словами, может существовать целая цепочка наследования.
При обращении к атрибуту объекта (obj.prop) сначала просматривается на наличие этого атрибута сам объект, затем его класс, на основе которого он создан. Если в классе не будет найден атрибут, то

его поиск продолжится в суперклассе, к которому относится класс.
Суперклассы класса указываются в скобках в заголовке инструкции class. Рассмотрим такой пример:

  1. class Table:

  2. definit(self,l,w,h):

  3. self.long = l

  4. self.width = w

  5. self.height = h

  6. def outing(self):

  7. print (self.long,self.width,self.height) 8.

  1. class Kitchen(Table):

  2. def howplaces(self,n):

  3. if n < 2:

  4. print ("It is not kitchen table")

  5. else:

  6. self.places = n

  7. def outplases(self):

  8. print (self.places) 17.

  1. t_room1 = Kitchen(2,1,0.5)

  2. t_room1.outing()

  3. t_room1.howplaces(5)

  4. t_room1.outplases() 22.

23. t_2 = Table(1,3,0.7)

  1. t_2.outing()

  2. t_2.howplaces(8) #ОШИБКА


Здесь создается два класса: Table и Kitchen. Второй является подклассом первого и наследует все его атрибуты (методыinit и outing). Далее создаются два объекта: t_room1 и t_2. Первый объект принадлежит к классу Kitchen и наследует атрибуты этого класса и его суперкласса. Второй объект принадлежит классу Table; к классу Kitchen он никакого отношения не имеет и поэтому не может обращаться к методам howplaces и outplases. В данном примере также можно увидеть, что объекты можно создавать как на основе классов так и суперклассов.
Задание. Расширьтепрограмму,представленнуювыше,создаввторойподклассклассаTable(например,Worker),содержащийпаруметодов,отличающихсяот методовкласса Kitchen().
Класс может иметь не один, а несколько суперклассов, которые перечисляются друг за другом в скобках в строке заголовка. Такое наследование называется
множественным. Потребность во множественном наследовании возникает в случае, если объекты класса предполагают использование свойств и методов различных суперклассов.


Практическая работа


Напишите программу, где класс «геометрические фигуры» (figure) содержит свойство color с изначальным значением white и метод для изменения цвета фигуры, а его подклассы «овал» (oval) и «квадрат» (square) содержат методы init для задания начальных размеров объектов при их создании.
ПолиморфизмипереопределениеметодоввООПнаPython.Урок5

Методическая разработка урока


Элективный курс: Введение в объектно-ориентированноепрограммированиенаPython

Уровень:Программированиедляначинающих

Полиморфизм


Парадигма объектно-ориентированного программирования помимо наследования включает еще одну важную особенность — полиморфизм. Слово «полиморфизм» можно перевести как «много форм». В ОО программировании этим термином обозначают возможность использования одного и того же имени операции или метода к объектам разных классов, при этом действия, совершаемые с объектами, могут существенно различаться. Поэтому можно сказать, что у одного и того же слова много форм. Например, два разных класса могут содержать метод total, однако инструкции в методах могут предусматривать совершенно разные операции: так в классе T1 – это прибавление 10 к аргументу, а в T2 – подсчет длины строки символов. В зависимости от того, к объекту какого класса применяется метод total, выполняются те или иные инструкции.
1. class T1:

2. n=10

  1. def total(self,N):

  2. self.total = int(self.n) + int(N) 5.

  1. class T2:

  2. def total(self,s):

  3. self.total = len(str(s)) 9.