Информатика, вопрос задал Abrikoska69 , 11 месяцев назад

Python
Описати базовий клас Користувач (User)



Конструктор класу приймає обов'язковий параметр "Ім'я користувача" (username) і зберігає його значення як прихований атрибут об'єкту без використання сеттера для збереження цього значення.

Конструктор класу приймає обов'язковий параметр "Очікувана дія" (expected_action) і зберігає його значення як прихований атрибут об'єкту без використання сеттера для збереження цього значення.

Клас має наступні методи об'єкту:

Виконати дію (perform_action), задача якого вивести на екран наступне повідомлення "Степан виконує дію: 'Нищити русню'", якщо об'єкт класу був проініціалізований з параметрами "Степан" і "Нищити русню";

Геттер (get_username) та сеттер (set_username) для прихованого атрибуту _username:

Сеттер приймає параметр "значення" (value) та змінює значення атрибуту _username на value;

Сеттер має змінювати регістр атрибуту _username на "Кожна перша літера кожного слова - велика".

Описати для класу Користувач (User) дочірні класи: тестувальник (QA) та менеджер (Manager).

Клас Тестувальник (QA) має:



Унаслідувати всі методи і атрибути класу Користувач (User).

В конструкторі, в додачу до ініціалізації атрибутів з базового класу, мати атрибут "Задачі" (tasks) зі значенням порожнього списку за замовчуванням.

Клас має наступні методи об'єкту:

Поставити задачу (set_task) з обов'язковим параметром task. Задача методу - додати до списку задач (атрибут об'єкту tasks) значення параметру task.

Клас Менеджер (Manager) має:



Унаслідувати всі методи і атрибути класу Користувач (User).

Клас має наступні методи об'єкту:

Метод perform_action із базового класу має бути перевизначений. Його нова функціональність - вивести на екран фразу "Зайнятий. Напишіть мені листа з Вашим питанням".

Додаткові умови:

Ім'я тестувальника (input_qa_name) вводиться користувачем з клавіатури;

Ім'я менеджера (input_pm_name) вводиться користувачем з клавіатури;

Очікувана дія для тестувальника (input_qa_expected_action) вводиться користувачем з клавіатури;

Очікувана дія для менеджера (input_pm_expected_action) вводиться користувачем з клавіатури;

Задача для тестувальника (input_qa_task) вводиться користувачем з клавіатури;

Використовуйте запропоновані назви методів і класів.

Ответы на вопрос

Ответил elmiraabdel
1

class User:

def __init__(self, username, expected_action):

self._username = username

self._expected_action = expected_action

def perform_action(self):

print(f"{self._username} виконує дію: '{self._expected_action}'")

def get_username(self):

return self._username

def set_username(self, value):

self._username = ' '.join(word.capitalize() for word in value.split())

class QA(User):

def __init__(self, username, expected_action):

super().__init__(username, expected_action)

self.tasks = []

def set_task(self, task):

self.tasks.append(task)

class Manager(User):

def perform_action(self):

print("Зайнятий. Напишіть мені листа з Вашим питанням")

# User input

input_qa_name = input("Введіть ім'я тестувальника: ")

input_qa_expected_action = input("Введіть очікувану дію для тестувальника: ")

input_pm_name = input("Введіть ім'я менеджера: ")

input_pm_expected_action = input("Введіть очікувану дію для менеджера: ")

input_qa_task = input("Введіть задачу для тестувальника: ")

# Create instances

qa_user = QA(input_qa_name, input_qa_expected_action)

pm_user = Manager(input_pm_name, input_pm_expected_action)

# Set task for QA user

qa_user.set_task(input_qa_task)

# Test the functionality

qa_user.perform_action()

print(f"Tasks for QA user: {qa_user.tasks}")

pm_user.perform_action()


Abrikoska69: Велике Дякую за відповідь!!!!!!!!!
Новые вопросы