Декораторы · 9 из 14
Вес через свойство
Задействованы также: ООП
В базе отделения обнаружились посылки с отрицательным весом: кто-то поправил вес руками уже после оформления. Проверка в момент создания была, а на позднейшую правку её не хватило.
Что сделать
Сделайте так, чтобы вес посылки нельзя было испортить и после оформления.
Что приходит
ves— вес в граммах
Что должен уметь
Поле ves — на чтение и запись, отрицательный вес — ValueError и при создании, и потом; stoimost — только чтение: 100 ₽ за начатый килограмм, присваивание — AttributeError.
Допишите класс Posylka в редакторе справа.
Проверка создаёт его объекты и зовёт методы — то, что напечатано,
на проверку не влияет.
p = Posylka(1500)
(p.ves, p.stoimost)
(1500, 200)
Написать класс «Posylka».
Вес в граммах задаётся при создании и доступен как обычное поле «ves» — на чтение и на запись. При любом присваивании отрицательного веса — и при создании, и позже — бросается ValueError. Поле «stoimost» — только для чтения: сто рублей за каждый начатый килограмм, при нулевом весе ноль. Присваивание ему должно приводить к AttributeError. Пользоваться «@property» и «@ves.setter».
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.