Написать декоратор класса под названием sizer, который будет добавлять в класс поле size. При обращении к этому полю возвращается len() объекта, если объёкт имеет длину, иначе же abs() объекта, если от него вычисляется модуль, и 0 в противном случае.

   1 @sizer
   2 class S(list):
   3     pass
   4 
   5 @sizer
   6 class N(complex):
   7     pass
   8 
   9 @sizer
  10 class E(Exception):
  11     pass
  12 
  13 for obj in S("QWER"), N(3+4j), E("Exceptions know no lengths!"):
  14     print(obj, obj.size)
  15 p = S(range(10, 15))
  16 print(p.size)
  17 p.size = p.pop()
  18 print(p.size)
  19 del p.size
  20 print(p.size)

['Q', 'W', 'E', 'R'] 4
(3+4j) 5.0
Exceptions know no lengths! 0
5
14
4

Спойлер:


CategoryHomework

LecturesCMC/PythonIntro2024/Homework_UniSize (последним исправлял пользователь FrBrGeorge 2024-11-18 14:15:49)