Этот проект представляет собой домашнюю работу базовый пример использования объектно-ориентированного программирования (OOP) в Python.
oop_homework/ │ ├── src/ │ ├── init.py │ ├── category.py │ ├── product.py │ ├── lawn_grass.py │ ├── smartphone.py │ └── main.py │ ├── tests/ │ ├── init.py │ ├── conftest.py │ ├── report.png │ ├── test_category.py │ ├── test_lawn_grass.py │ ├── test_product.py │ └── test_smartphone.py │ ├── .gitignore │ ├── .coverage │ ├── poetry files ... │ ├── ... │ └── README.md └── External Libraries
-
Product
:- Представляет товар со свойствами: имя, описание, цена, количество.
- Имеет метод
__init__()
для инициализации объекта. - Для класса Product переопределен метод str, который возвращает строку: Название продукта, X руб. Остаток: X шт.
- Для класса Product создан класс-метод new_product который будет принимать на вход параметры товара в словаре и возвращать созданный объект класса Product
- Для класса Product сделаны атрибут цены приватным и описаны геттеры и сеттеры.
- Добавлено метод строковое отображение названия, цены, остатка на складе.
- Добавлен метод сложения всей стоимости всего товара на складе.
-
Category
:- Представляет категорию товаров со свойствами: имя, описание, список продуктов.
- Имеет статические переменные для подсчета количества категорий и продуктов.
- Имеет метод
__init__()
для инициализации объекта. - Функциональность для добавления продуктов в категорию.
- Реализована проверка: в случае если цена равна или ниже нуля, выводится сообщение в консоль “Цена не должна быть нулевая или отрицательная”
- Реализована логика подтверждения пользователем согласия понизить цену. В случае если пользователь вручную вводит y (значит yes) цена товара понижается, если n (значит no) происходит отмена действия.
- Для класса Category переопределен метод str, который возвращает строку: Название категории, количество продуктов: X шт.
- Метод str рассчитывает общее количество товаров на складе (quantity) для каждого продукта в приватном атрибуте products
- Добавлен метод строкового отображения имя категории, количество товаров
Category
:- Добавлены модули с наследуемыми классами категория товара
- Модуль с дочерним классом Smartphone
- Модуль с дочерним классом LawnGrass
Пример создания и использования объектов: Запустите модуль crs.main.py с примерами ввода и получения обработанных данных.