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

   1 @sizer
   2 class S(str):
   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)

QWER 4
(3+4j) 5.0
Exceptions know no lengths! 0

Спойлер:


CategoryHomework

LecturesCMC/PythonIntro2021/Homework_UniSize (последним исправлял пользователь FrBrGeorge 2021-11-18 22:35:57)