[Zope-dev] How to override __getattr__ and not break acquisition
Steve Alexander
steve@cat-box.net
Wed, 05 Jun 2002 08:33:25 +0100
Erik A. Dahl wrote:
> Ok I need to override __getattr__ in one of my product classes. I'm
> sure this is killing acquisition
yes
> but not sure about the persistence
> stuff (I think this is working).
it will still work
> Is there a way to make this work?
yes
> Here is what I'm doing:
>
> def __getattr__(self, name):
> if name == 'myattr':
> return self.myattr()
if your return value knows about acquisition, you need to it by calling
__of__:
def __getattr__(self, name):
if name == 'myattr':
return self.myattr().__of__(self)
> I assume that somewhere in the Acquisition code there is a __getattr__
> but I can't find it.
it is implemented in C.
--
Steve Alexander