class Vault2: def __init__(self): self._treasure = "gold" self._original_dict = dict(self.__dict__) def __setattr__(self, name, value): if name != "_treasure" and name in self.__dict__ and self._original_dict.get(name) != value: print("attribute deleted!") self.__dict__[name] = value @property def treasure(self): if self.__dict__ != self._original_dict: print("attribute deleted!") return self._treasure v = Vault2() print(v.treasure)