from __future__ import division, print_function

class SomeClass(object):
    def __setattr__(self, name, value):
        print("Setting {} to value {}".format(name, value))
        self.__dict__[name] = value

    def __getattr__(self, name):
        print("Getting {}".format(name))
        return None

o = SomeClass()
o.xxx = "yyy"
o.xxx = "zzz"
print(o.xxx)  # Note: __getattr__ does not get called here!
print(o.nope)