I'm having trouble assigning an assignment operator.
I successfully reloaded __setattr__. But after initializing the object, I want it to __setattr__do something else, so I'm trying to assign it to another function __setattr2__.
the code:
class C(object):
def __init__(self):
self.x = 0
self.__setattr__ = self.__setattr2__
def __setattr__(self, name, value):
print "first, setting", name
object.__setattr__(self, name, value)
def __setattr2__(self, name, value):
print "second, setting", name
object.__setattr__(self, name, value)
c = C()
c.x = 1
What I get:
first, setting x
first, setting __setattr__
first, setting x
What I want / expect:
first, setting x
first, setting __setattr__
second, setting x
source
share