Мне необходимо сделать дескриптор. Что имею - получаю значение value, значение сохраняю во владельцах . Не могу разобраться, как написать метод. Он должен присваивать 0 во все поля объектов-владельцев.
И при удалении значения из объекта-владельца удаляется и ссылка из класса DescriptorToNull на этот объект (это еще не реализовано).
class DescriptorToNull: """Это класс дескриптора.""" def __init__(self): self.val = None self.list_owner = [] def __get__(self, instance, owner): return self.val def __set__(self, instance, value): instance.__dict__["n_value"] = value self.list_owner.append(self) #хотела создать список владельцев, def null(self): pass #вот здесь не понимаю что дальше def __set_name__(self, klass, name): self._name = name class MyClass: """Это класс владелец дескрипторов.""" core = DescriptorToNull() def __init__(self): self.n_value = None
score = DescriptorToNull()
Вызов для тестирования такой:
t1 = MyClass() t2 = MyClass() t1.score = 5 print(t1.score) #5 t2.score = 28 print(t1.score, t2.score) # 5 28 DescriptorToNull.null() print(t1.score, t2.score) # 0 0 del team2.score
Помогите разобраться, уже не понимаю куда двигаться.