Задача · Итоговый проект · урок 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 его не возвращает.
Не добавляйте лишних импортов, если в задаче это прямо не сказано.
Подпишись, чтобы пройти курс
Курс бесплатный. Войди через Telegram и подпишись на канал — откроются все уроки.