Задача 142 Сложная

Проверка, которую обходят через extend

Список позиций заказа не должен принимать позицию с количеством меньше 1. OrderLines унаследован от list, проверка — в append. Но импорт заказов из CSV добавляет позиции через extend, и в заказы попадают нулевые количества. Перепишите OrderLines через композицию. Метод add(line) проверяет и добавляет позицию (неверная — ValueError), add_many(lines) добавляет несколько с той же проверкой. len(lines) и for line in lines должны работать. Позиция — кортеж (product_id, quantity).

Подсказка 1 из 3

Посчитайте, сколькими способами можно изменить list: append, extend, insert, +=, lines[0] = ...…

Подсказка 2 из 3

Храните список в self._lines, откройте только add, add_many, __len__ и __iter__.

Подсказка 3 из 3

add_many вызывает self.add для каждой позиции — проверка написана один раз.

main.py Загружаем Python… первый раз ~13 МБ, дальше из кэша

Ошибка в тексте

Сообщить об ошибке могут зарегистрированные пользователи — так в сообщениях меньше спама.

Войти, чтобы сообщить