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 )