AFAIK acquisition bows out quietly during __getattr__, __setattr__. You'll have to find another way to pass in the "thing" values before __setattr__ gets called. Maybe try an explicit self.aq_acquire('thing'). Maybe that would work. -Casey On Wed, 2002-06-05 at 09:33, Nicholas Henke wrote:
Given the following code: I can see why access to self.thing fails in Inner::__setattr__, but the question is how do I do that -- can I not use __setattr__ and have to use a setAttr that is accessed via O.I.setAttr('help','me rhonda') ?
Nic
import ExtensionClass, Acquisition
class Outer(ExtensionClass.Base): thing = ('help','donthelp')
class Inner(Acquisition.Implicit): def __setattr__(self,name,value): if name in self.thing: self.__dict__['name'] = value else: print "Bad attribute"
O = Outer() I = Inner() O.I = I print O.I.thing # is ok --> gives ('help','donthelp') O.I.help = 'me rhonda' # AttributeError: thing