методические указания по выполнению лабораторных работ. Лабораторная работа 1 Конструктор и деструктор Цель освоить применение конструктора и деструктора в языке программирования Python
Скачать 18.71 Kb.
|
Лабораторная работа №1 Конструктор и деструктор Цель: освоить применение конструктора и деструктора в языке программирования «Python» Краткие теоретические сведения В объектно-ориентированном программировании конструктором класса называют метод, который автоматически вызывается при создании объектов. Его также можно назвать конструктором объектов класса. Имя такого метода обычно регламентируется синтаксисом конкретного языка программирования. В Python роль конструктора играет метод __init__(). В Python наличие пар знаков подчеркивания спереди и сзади в имени метода говорит о том, что он принадлежит к группе методов перегрузки операторов. Если подобные методы определены в классе, то объекты могут участвовать в таких операциях как сложение, вычитание, вызываться как функции и др. При этом методы перегрузки операторов не надо вызывать по имени. Вызовом для них является сам факт участия объекта в определенной операции. В случае конструктора класса – это операция создания объекта. Так как объект создается в момент вызова класса по имени, то в этот момент вызывается метод __init__(), если он определен в классе. Помимо конструктора объектов в языках программирования есть обратный ему метод – деструктор. Он вызывается, когда объект не создается, а уничтожается. В языке программирования Python объект уничтожается, когда исчезают все связанные с ним переменные или им присваивается другое значение, в результате чего связь со старым объектом теряется. Удалить переменную можно с помощью команды языка del. В классах Python функцию деструктора выполняет метод __del__(). Задание Напишите программу по следующему описанию: 1. Создайте класс «Сотрудник», конструктор __init__() которого принимает три параметра (не учитывая self) – имя (name), фамилию (lastname) и разряд сотрудника (discharge). Разряд имеет значение, заданное по умолчанию, равное 6. 2. У класса «Сотрудник» создайте метод conclusion, позволяющий выводить строку, содержащую всю информацию о сотруднике. 3. У класса «Сотрудник» создайте деструктор __del__(), который выводит на экран фразу «Всего доброго, …» (вместо многоточия должны выводиться имя и фамилия сотрудника). 4. Создайте три объекта класса «Сотрудник»: Иван Иванов, имеющий 3 разряд; Петр Петров, имеющий 5 разряд; Петр Сидоров, имеющий 2 разряд. 5. Применяя деструктор, а также условные операторы, попрощайтесь с сотрудником, имеющим минимальное значение разряда. По результатам выполненной работы сформируйте отчет. Отчет должен содержать: 1. Титульный лист (один на все лабораторные работы); 2. Название лабораторной работы; 3. Цель лабораторной работы; 4. Задание; 5. Программный код, каждая строка которого должна, в обязательном порядке, сопровождаться комментарием; 6. Вывод о проделанной лабораторной работе. Лабораторная работа №2 Перегрузка операторов Цель: освоить применение перегрузки операторов в языке программирования «Python» Краткие теоретические сведения Перегрузка операторов в Python – это возможность с помощью специальных методов в классах переопределять различные операторы языка. Имена таких методов включают двойное подчеркивание в начале и в конце. Под операторами в данном контексте понимаются не только знаки +, -, *, /, обеспечивающие операции сложения, вычитания и др., но также специфика синтаксиса языка, обеспечивающая операции создания объекта, вызова объекта как функции, обращение к элементу объекта по индексу, вывод объекта и другое. К методам перегрузки операторов относят: __init__() – конструктор объектов класса, вызывается при создании объектов __del__() – деструктор объектов класса, вызывается при удалении объектов __add__(self, other) – сложение. x + y вызывает x.__add__(y). __sub__(self, other) – вычитание (x - y). __mul__(self, other) – умножение (x * y). __truediv__(self, other) – деление (x / y). __floordiv__(self, other) – целочисленное деление (x // y). __mod__(self, other) – остаток от деления (x % y). Задание 1. Создайте класс «snowflakes», в конструкторе класса инициируйте поле, содержащее количество снежинок «number_of_snowflakes». 2. В классе пропишите следующие методы перегрузки арифметических операторов: 1) __add__() – сложение; 2) __ sub __() – вычитание; 3) __ mul __() – умножение; 4) __ truediv__() – деление (деление «/», при этом необходимо организовать округление значения до целого числа); 5) __ floordiv__() – деление (целочисленное деление «//»); 6) __ mod __ () – остаток от деления (%). 3. Создайте объект класса «snowflakes» – A; 4. Применяя функцию «print», проверьте работоспособность перегрузки операторов. По результатам выполненной работы сформируйте отчет. Отчет должен содержать: 1. Титульный лист (один на все лабораторные работы); 2. Название лабораторной работы; 3. Цель лабораторной работы; 4. Задание; 5. Программный код, каждая строка которого должна, в обязательном порядке, сопровождаться комментарием; 6. Вывод о проделанной лабораторной работе. |