Дополнительные вопросы:
– С чего проще начать выполнение домашнего задания: с тестов или с реализации классов? Я думаю это зависит от требований задачи и предпочтений. Если начать тестирование с реализации классов, это позволит нам узнать функциональность, что облегчит дальнейшее тестирование и выбор тестовых сценариев. Если начать с написания тестов, то это может помочь в определении требуемой функциональности.
– Почему для хранения товаров в корзине используется словарь, а не список? Каждый товар имеет уникальный идентификатор (ключ) для быстрого доступа.
– Зачем нужен hash в классе Product? Изучите этот метод и объясните, почему он нужен. Используется для сравнения объектов и определении уникальности. За счет hash доступ по ключу быстро работает.