# How to override __setattr__ __getattr__ method
class Overrider(object):
    def __init__(self, x):
        self.x = x
        #print(self.__dict__)
    
    def __setattr__(self, key, value):
        print("Changing:")
        super(Overrider, self).__setattr__(key, value)

    def __getattribute__(self, key):
        #if key.startswith('_'):
        #    return super(Overrider, self).__getattribute__(key)
        return super(Overrider, self).__getattribute__(key)*3

obj = Overrider(10)
obj.x = 5
obj.x