Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Проект 20: Склад товаров (магические методы) 📦

Консольное приложение для управления складом с использованием магических методов Python.
Демонстрирует работу __init__, __str__, __eq__, __add__, __len__, __bool__.

🎯 Что закрепляет

  • Магические методы Python
  • Автоматическое объединение товаров при добавлении
  • Валидация пользовательского ввода
  • Интерактивное меню

📋 Функционал

Класс Product

  • Атрибуты: name (название), price (цена), quantity (количество)
  • Магические методы:
    • __init__ — конструктор
    • __str__ — красивое представление: "Товар: {name}, цена: {price}, остаток: {quantity}"
    • __eq__ — сравнение по названию и цене
    • __add__ — объединение одинаковых товаров (суммирует количество)
    • __len__ — возвращает количество на складе
    • __bool__True, если товар есть на складе

Интерактивное меню

  • Добавить товар — ввод названия, цены, количества. Если товар уже есть — количество увеличивается.
  • Показать все товары — вывод всех товаров на складе.
  • Выход — завершение программы.

Валидация ввода

  • Защита от пустого названия
  • Защита от ввода букв в полях цена/количество

🛡️ Обработка ошибок

  • Пустое название: повторный запрос
  • Буквы в цене/количестве: сообщение об ошибке, повторный запрос

📝 Пример работы

1. Добавить товар
2. Показать все товары
3. Выход
Выберите действие: 1
Введите название товара: яблоки
Введите цену товара: 100
Введите количество товара: 5
✅ Товар добавлен

1. Добавить товар
2. Показать все товары
3. Выход
Выберите действие: 1
Введите название товара: яблоки
Введите цену товара: 100
Введите количество товара: 3
✅ Товар добавлен

1. Добавить товар
2. Показать все товары
3. Выход
Выберите действие: 2
Товар: яблоки, цена: 100, остаток: 8

🧠 Чему научился

  • Реализовывать магические методы
  • Использовать eq и add для бизнес-логики
  • Автоматически объединять одинаковые товары
  • Валидировать пользовательский ввод
  • Строить интерактивное меню

📁 Структура проекта

20_product_stock/
├── main.py       # код программы
└── README.md     # документация

🚀 Как запустить

python main.py

📊 Статус

✅ Проект готов