Skip to content

Lazarus-Phoenix/oop_hw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект OOP Homework

Image alt

Этот проект представляет собой домашнюю работу базовый пример использования объектно-ориентированного программирования (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

Основные классы

  1. Product:

    • Представляет товар со свойствами: имя, описание, цена, количество.
    • Имеет метод __init__() для инициализации объекта.
    • Для класса Product переопределен метод str, который возвращает строку: Название продукта, X руб. Остаток: X шт.
    • Для класса Product создан класс-метод new_product который будет принимать на вход параметры товара в словаре и возвращать созданный объект класса Product
    • Для класса Product сделаны атрибут цены приватным и описаны геттеры и сеттеры.
    • Добавлено метод строковое отображение названия, цены, остатка на складе.
    • Добавлен метод сложения всей стоимости всего товара на складе.
  2. Category:

    • Представляет категорию товаров со свойствами: имя, описание, список продуктов.
    • Имеет статические переменные для подсчета количества категорий и продуктов.
    • Имеет метод __init__() для инициализации объекта.
    • Функциональность для добавления продуктов в категорию.
    • Реализована проверка: в случае если цена равна или ниже нуля, выводится сообщение в консоль “Цена не должна быть нулевая или отрицательная”
    • Реализована логика подтверждения пользователем согласия понизить цену. В случае если пользователь вручную вводит y (значит yes) цена товара понижается, если n (значит no) происходит отмена действия.
    • Для класса Category переопределен метод str, который возвращает строку: Название категории, количество продуктов: X шт.
    • Метод str рассчитывает общее количество товаров на складе (quantity) для каждого продукта в приватном атрибуте products
    • Добавлен метод строкового отображения имя категории, количество товаров
      • Category:
      • Добавлены модули с наследуемыми классами категория товара
      • Модуль с дочерним классом Smartphone
      • Модуль с дочерним классом LawnGrass

Использование

Пример создания и использования объектов: Запустите модуль crs.main.py с примерами ввода и получения обработанных данных.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages