Условия задачи:
Классы Employee и ProductionWorker. Напишите класс Employee (Сотрудник), который содержит атрибуты приведенных ниже данных:
•имя сотрудника;
•номер сотрудника.
Затем напишите класс ProductionWorker (Рабочий), который является подклассом класса Employee. Класс ProductionWorker должен содержать атрибуты приведенных ниже данных:
•номер смены (целое число, к примеру, 1 или 2);
•ставка почасовой оплаты труда.
Рабочий день разделен на две смены: дневную и вечернюю. Атрибут смены будет содержать целочисленное значение, представляющее смену, в которую сотрудник работает. Дневная смена является сменой 1, вечерняя смена - сменой 2. Напишите соответствующие методы-получатели и методы-мутаторы для каждого класса.
Затем напишите программу, которая создает объект класса ProductionWorker и предлагает пользователю ввести данные по каждому атрибуту данных этого объекта. Сохраните данные в объекте и примените в этом объекте методы-получатели, чтобы получить эти данные и вывести их на экран.
Решение задачи:
class Employee():
def __init__(self):
self.__name = 'name'
self.__number = 'number'
def get_name(self):
return self.__name
def get_number(self):
return self.__number
def set_name(self, name):
self.__name = name
def set_number(self, number):
self.__number = number
class ProductionWorker(Employee):
def __init__(self):
self.__sutki = '1'
self.__stavka = 1
Employee.__init__(self)
def get_sutki(self):
return self.__sutki
def get_stavka(self):
return 1 if self.__sutki == '1' else 1.5
def set_sutki(self, sutki):
self.__sutki = sutki
def __str__(self):
return f'Имя: {self.__name}, номер: {self.__number}, смена: {self.__sutki}, ставка: {self.__stavka}'
worker = ProductionWorker()
name = input('Введите имя работника: ')
number = input('Введите номер работника: ')
sutki = input('Введите смену работника 1 или 2 : ')
worker.set_name(name)
worker.set_number(number)
worker.set_sutki(sutki)
print(f'Имя: {worker.get_name()}, номер: {worker.get_number()},'
f' смена: {worker.get_sutki()}, ставка: {worker.get_stavka()}')