Файл: Введение в объектноориентированное программирование.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.12.2023
Просмотров: 836
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Уровень: Программирование для начинающих
Созданиеклассовиобъектов.Урок2
Уровень: Программирование для начинающих
Конструкторкласса—метод init .Урок3
Уровень: Программирование для начинающих
Уровень: Программирование для начинающих
Уровень: Программирование для начинающих
Уровень: Программирование для начинающих
Форматирование строк документирования
Пример документированного исходного кода
ПерегрузкаоператороввООП.Урок10
Уровень: Программирование для начинающих
Особенностиобъектно-ориентированногопрограммирования.Урок11
Уровень: Программирование для начинающих
Идеи (принципы) объектно-ориентированного программирования
Форматирование строк документирования
Обратитевнимание,когдамывызывалиметодdocдляобъектов,тоиспользоваливстроеннуюфункциюprint.Зачем?Ведьвинтерактивном режиме вывод работает и без print. Однако если при вызове методаdoc__ не использовать функцию print, то вывод неотформатируется,абудет выглядеть как висходномкоде:-
>>> str.doc -
"str(string[, encoding[, errors]]) -> str\n\nCreate a new string object from the given encoded string.\nencoding defaults to the current default string encoding.\nerrors can be 'strict', 'replace' or 'ignore' and defaults to 'strict'."
Функция help
Еще более интересный способ получить информацию о модуле или его частях — это использование встроенной функции help. Она выводиттекстовый отчет о переданном ей в качестве аргумента объекте. Этот отчет включает не только строки документации, но и структурузапрошенной части кода. т.е. применив функцию help по отношению к объектам мы получим еще и информацию о внутренних функциях иклассах.Практическая работа
-
Напишите строки документации к программе, созданной на 7 уроке (вычисление площади оклеивания) . Поместите следующую информацию:
-
Модуль. Для чего предназначена данная программа. -
Классы. Для чего предназначены, какие аргументы передаются методу init. -
Методы (кроме init). Назначение, описание входных и выходных данных.
Используя метод doc, вызовите в интерактивном режиме строки документации для различных объектов модуля. Предварительно необходимо импортировать модуль (чтобы импортировать его без проблем, поместите файл в каталог установки python).
Примените функцию help для данного модуля. Например, если имя модуля rooms, то вызов справки по нему будет выглядеть так: help (rooms).
Пример документированного исходного кода
1. "It is the program for definition of quantity of wall-paper" 2.
3. class Win_Door:
4. """
-
Class Win_Door calculates the area of a rectangular. -
Methodinitaccepts two parameters: length and width. 7. """
-
definit(self,x,y): -
self.square = x * y 10.
11. class Room:
12. """
-
Class Room is intended for definition of the pasted over area of a room. -
Methodinitaccepts three arguments (length, width and height). 15. """
-
definit(self,x,y,z): -
self.square = 2 * z * (x + y) -
def win_door(self, d,e, f,g, m=1,n=1):
19. """
-
The first pair parameters - the sizes of a window, -
the second pair - the sizes of a door, -
the fifth and sixth parameters - quantity of windows and doors accordingly 23. """
-
self.window = Win_Door(d,e) -
self.door = Win_Door(f,g) -
self.numb_w = m -
self.numb_d = n -
def wallpapers(self):
29. """
30. This method calculates the pasted over area 31. """
-
self.wallpapers = self.square - \ -
self.window.square * self.numb_w \ -
- self.door.square * self.numb_d -
def printer(self):
36. """
37. Displays the information 38. """
-
print ("Площадь стен комнаты равна "\ -
,str(self.square)," кв.м") -
print ("Оклеиваемая площадь равна: ", \ -
str(self.wallpapers), " кв.м")
ПерегрузкаоператороввООП.Урок10
Методическая разработка урока
Элективный курс: Введение в объектно-ориентированноепрограммированиенаPythonУровень: Программирование для начинающих
До этого мы говорили только о классах и объектах, которые создает программист (пользовательские классы). Однако Python настолькообъектно-ориентированный язык, что в нем любые строка, число, список и др. являются по сути объектами, принадлежащими встроеннымклассам (типамданных): строкам,числами др.Т. е.типыданных—этовстроенныеклассы, алюбыеданные — этообъекты.Объектно-ориентированное программирование подразумевает не только наличие объектов, но и их взаимодействие между собой. Поэтомуважно,чтобы кобъектамразныхклассов можно былоприменить однуи тужеоперацию(например, сложение).Для пользовательских классов предусмотрены специальные методы, позволяющие объектам данных классов участвовать в таких привычныхоперациях как сложение, вычитание, умножение, деление (+ - * /), а также во многих других. Другими словами, смысл (то, что он делает)знака + (или любого другого оператора) зависит от того, к каким объектам он применяется. Это называется перегрузкой операторов. Вклассах перегруженные операторы описываются с помощью специальных зарезервированных методов, которые в начале и в конце имеют подва знака подчеркивания. В уроке рассматриваются лишь некоторые из них. Кроме того, ранее был уже рассмотрен один такой метод —конструкторinit,который автоматически вызываетсяпри создании объектовкласса.Рассмотримпримерперегрузкиоператоров.-
class Newclass: -
definit(self, base): -
self.base = base -
defadd(self, a): -
self.base = self.base + a -
defstr(self): -
return "%s !!! " % self.base 8.
9. a = Newclass(10)10.a + 2011.print(a)12.
-
b = Newclass("yes") -
b + "terday" -
print (b) -
-
class Changeable: -
definit(self, color): -
self.color = color -
defcall(self, newcolor): -
self.color = newcolor -
defstr(self): -
return "%s" % self.color 8.
-
canvas = Changeable("green") -
frame = Changeable("blue") 11.
-
canvas("red") -
frame("yellow") 14.