You've overridden the __setattr__
method, but you are not setting any attribute inside it:
def __setattr__(self,name,value):
print self
print "setting value of " + name + " to " + str(value)
object.__setattr__(self, name, value)
And don't forget make your class inherit from object
to make it a new-style class.
class MyClass(object):
def __init__(self, a,b):
...
In old-style classes to set an attribute you need to use self.__dict__
, for new-style classes object.__setattr__(...)
is the recommended way.:
self.__dict__[name] = value