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 > > > _______________________________________________ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )