Аннотации типов Python: исправьте класс OrderLine
Исправь аннотации в классе OrderLine
Что уже дано
В редакторе находится класс OrderLine с намеренно сломанными аннотациями атрибутов и методов. Проверяющая система не передаёт никаких данных заранее — весь код находится прямо в редакторе.
Класс должен моделировать строку заказа: товар с названием, ценой за единицу и количеством.
Что нужно сделать
Исправьте только аннотации (не меняйте логику), чтобы они точно соответствовали реальному поведению кода:
- атрибут
nameхранит название товара — строку; - атрибут
unit_priceхранит цену за единицу — число с плавающей точкой; - атрибут
quantityхранит количество единиц — целое число; - метод
total()возвращает суммуunit_price * quantity— число с плавающей точкой; - метод
describe()возвращает строку вида"<name> x<quantity> @ <unit_price>"; - метод
apply_discount(percent)принимает процент скидки как число с плавающей точкой и ничего не возвращает, а уменьшаетunit_priceна соответствующий процент.
В коде есть ровно семь неверных аннотаций — найдите и исправьте каждую.
Ввод и вывод
stdin не используется. Печатать через print в stdout ничего не нужно.
Проверяющая система после вашего кода создаёт экземпляры OrderLine, вызывает методы и получает вычисленные аннотации класса через typing.get_type_hints(), чтобы убедиться, что аннотации соответствуют реальным типам значений.
Пример использования
line = OrderLine("Кабель", 100.0, 2)
print(line.describe())
print(line.total())
line.apply_discount(10)
print(line.total())
Результат:
Кабель x2 @ 100.0 200.0 180.0
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
Связанные задачи
- Protocol в Python: задача на структурные интерфейсы
- Python-пакет с моделями и Protocol: итоговая задача
- Python: Форматировщик записей лога с Literal, X | None и TypeAlias
- Python: Обобщённая функция firstandlast с TypeVar и bound
- Python: Классификатор строк диагностики по инструменту
- Comprehension, enumerate и zip в Python: отчёт по студентам
