Написать функцию sloter(fields, default), которой передаётся последовательность полей fields, и значение по умолчанию default, а возвращает она класс, в экземпляре которого все эти поля есть, равны указанному значению и способны хранить произвольные объекты. Удаление существующего поля должно сбрасывать его в в исходное значение. Попытки создать другие поля в этом экземпляре должны приводить к исключению AttributeError. При проходе циклом экземпляр возвращает поля в порядке их объявления.

   1 s = sloter(("A", "b", "CC"), 100500)()
   2 print(*s)
   3 s.A, s.b, s.CC = 3, 2, 1
   4 del s.b
   5 print(*s)
   6 try:
   7     s.E = 123
   8 except AttributeError:
   9     print("No .E")

С помощью слотов это как-то совсем просто.

100500 100500 100500
3 100500 1
No .E


CategoryHomework

LecturesCMC/PythonIntro2022/Homework_DataClass (last edited 2022-11-18 16:22:55 by FrBrGeorge)