Написать параметрический декоратор-функцию slotgen(number), которым декорируется класс. В декорированном классе остаются все поля исходного класса, не начинающиеся с __ + заводится number штук полей в слотах. Правила именования полей: сочетания строчных латинских букв одинаковой длины, минимально достаточной для number полей, начиная с a… в алфавитном порядке. Поля, взятые из исходного класса становятся read-only (из-за слотов), в при совпадении имён или заслоняются слотами.

   1 @slotgen(29)
   2 class C:
   3     field = 12
   4     ab = 100500
   5 
   6 c = C()
   7 c.ba = 100500
   8 for attr in "aa ab field ba".split():
   9     try:
  10         print(f"{attr}={getattr(c, attr)}")
  11     except AttributeError:
  12         print(f"No {attr}")

No aa
No ab
field=12
ba=100500


CategoryHomework

LecturesCMC/PythonIntro2025/Homework_SlotGen (последним исправлял пользователь FrBrGeorge 2025-11-12 23:02:46)