Написать класс Absolute, который можно использовать как метакласс. Absolute добавляет в порождаемый класс дескриптор abs и метод __abs__(). При создании класса ему можно передавать два именных параметра: width — имя поля «ширина» и height — имя поля «высота». По умолчанию width="width" и height="height". Создание полей abs и __abs__ происходит по следующим правилам (правила применяются по принципу «первое подходящее»):

Дескриптор abs создаётся всегда (в том числе вместо любого атрибута abs, если он был): возвращает __abs__().

   1 class D(metaclass=Absolute):
   2     def __len__(self):
   3         return 2
   4 
   5 class E(metaclass=Absolute, height="depth"):
   6     width = depth = 0
   7     def __init__(self, sz):
   8         self.width = self.depth = sz
   9 
  10 print(abs(D()), abs(E(8))) 

2 64


CategoryHomework

LecturesCMC/PythonIntro2025/Homework_AbsoluteMeta (последним исправлял пользователь FrBrGeorge 2025-11-27 00:22:19)