Перейти к содержимому
Задача · Итоговый проект · урок 8 из 8

Задача: склад

Напишите класс Inventory — склад, который считает единицы каждого товара. Храните количества в словаре, атрибут для него создайте в __init__(self). Методы такие:

  • add(name, qty) кладёт на склад qty единиц товара name;
  • take(name, qty) забирает со склада qty единиц товара name;
  • count(name) возвращает, сколько единиц товара лежит на складе;
  • names() возвращает список названий товаров по алфавиту.

Заготовка объявляет исключение OutOfStockError. Если единиц товара name на складе меньше qty, take возбуждает OutOfStockError и склад не меняет.

  • после add("apple", 5) и add("apple", 3): count("apple") → 8
  • когда count("pear") равно 2: take("pear", 3) возбуждает OutOfStockError, а count("pear") остаётся 2
  • после add("pear", 2) и add("apple", 5): names() → ['apple', 'pear']

Ограничения: qty — целое положительное число; count для неизвестного товара возвращает 0, а take для него возбуждает OutOfStockError; товар, забранный целиком, исчезает со склада, и names его не возвращает.

Не добавляйте лишних импортов, если в задаче это прямо не сказано.

inventory.py — python
python · строк: 20
Ctrl+Enter запуск · Esc выйти из редактора

Подпишись, чтобы пройти курс

Курс бесплатный. Войди через Telegram и подпишись на канал — откроются все уроки.

Войти другим способом