Re: [Zope-dev] __setattr__ and acquisition ( was RE: __getattr__and acquisition)
The only way I know is to put a wrapped object in a ._v_attribute, which means a volatile attribute. You can put, for instance, a wrapped self in, for instance self._v_alterEgo, this way you can do wrapped transversals thru it. How do you get a wrapped self to put there is an exercise left to the reader :-) tip: it's no use trying to do it in .__setstate__, as self is not wrapped there either, last I checked. On Wed, 2002-06-05 at 16:24, Erik A. Dahl wrote: Yep. This is a problem for me I'm trying to find something through acquisition in my __setattr__. Self is totally unwrapped. Can anyone think of a creative solution? aq_acquire doesn't help because self is not a wrapped object. :( Can't pass in the object I want because the whole point of the setattr is to get around the function call. -- Ideas don't stay in some minds very long because they don't like solitary confinement. ___ 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 )
Re: [Zope-dev] __setattr__ and acquisition ( was RE: __getattr__and acquisition)
Nicholas Henke (by way of 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') ? Acquisition uses a subtle trick that makes everything work: the self passed to most methods is actually an acquisition wrapper, rather than the object itself. But the self passed to certain methods like __setattr__() is not wrapped. I'm sure there's a good reason. HTH. Shane ___ 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 )
Re: [Zope-dev] __setattr__ and acquisition ( was RE: __getattr__and acquisition)
Yep. This is a problem for me I'm trying to find something through acquisition in my __setattr__. Self is totally unwrapped. Can anyone think of a creative solution? aq_acquire doesn't help because self is not a wrapped object. :( Can't pass in the object I want because the whole point of the setattr is to get around the function call. -EAD Shane Hathaway wrote: Nicholas Henke (by way of 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') ? Acquisition uses a subtle trick that makes everything work: the self passed to most methods is actually an acquisition wrapper, rather than the object itself. But the self passed to certain methods like __setattr__() is not wrapped. I'm sure there's a good reason. HTH. Shane ___ 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 ) ___ 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 )
Re: [Zope-dev] __setattr__ and acquisition ( was RE: __getattr__and acquisition)
Why rely on __setattr__? Why not just create a regular setter function that can use acquisition instead of being clever? -Casey On Wed, 2002-06-05 at 15:24, Erik A. Dahl wrote: Yep. This is a problem for me I'm trying to find something through acquisition in my __setattr__. Self is totally unwrapped. Can anyone think of a creative solution? aq_acquire doesn't help because self is not a wrapped object. :( Can't pass in the object I want because the whole point of the setattr is to get around the function call. -EAD Shane Hathaway wrote: Nicholas Henke (by way of 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') ? Acquisition uses a subtle trick that makes everything work: the self passed to most methods is actually an acquisition wrapper, rather than the object itself. But the self passed to certain methods like __setattr__() is not wrapped. I'm sure there's a good reason. HTH. Shane ___ 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 ) ___ 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 )