Bruno Desthuilliers wrote: > Frank Millman wrote: > > This "replacement" happens at instance initialisation time - ie, after > the class object have been created. If you don't want this to happen, > either skip the call to Test.__init__ in Test2.__init__, or make this > call with False as second param, or redefine getx2 in Test2. Or go for a > saner design... >
Thanks, Bruno, you gave me the clue to a less ugly workaround. In my particular case, when I do subclass Test, y is always True. Therefore I can rewrite it like this - class Test2(Test): def __init__(self,x): Test.__init__(self,x,True) def getx2(self): print x*3 As you suggested, I redefine getx2 instead of getx, and it works as I want. Slightly less insane, I hope ;-) Frank -- http://mail.python.org/mailman/listinfo/python-list