class MyClass(object):
def __init__( self ):
self.a = 1
self.b = 2
self.c = 3
self.__deleted__ = dict()
def __delattr__(self, item):
value = self.__getattribute__(item)
self.__deleted__[item] = value
# optional actually delete attribute..
super().__delattr__(item)
def __getattribute__(self, item):
if item == '__deleted__':
return super().__getattribute__(item)
elif item in self.__deleted__:
print('item has been deleted, prev value: {}'.format(self.__deleted__[item]))
else:
return super().__getattribute__(item)
m = MyClass()
print( m.a )
del m.a
print( m.a )
---------------------------
1
item has been deleted, prev value: 1
None