[Zope-dev] acquisition interfering with []?
Karl Anderson
karl@digicool.com
20 Feb 2001 20:32:54 -0800
Hopefully this is enough context for this question.
When I subclass Acquisition.Implicit or .Explicit, I find myself
losing the foo["item"] and foo[slice:slice] syntax. __getslice__ and
__getitem__ aren't affected.
When I don't subclass Acquisition, the [] syntax works fine.
I can get them back by explcitly redefining them __getslice__ and
__getitem__ (even though those methods never had any problems), but is
there a better way around this?
I'm doing a lot of other craaazzy stuff with these classes, I may be
causing this problem myself elsewhere. I'm not defining
foo.__getslice__, rather I'm defining __getattr__ in a superclass, and
returning the result of a call on a proxied object for attr names that
match a list.
But this does look like the [] syntax is running into the fact that
you need to call inheritedAttribute rather than the superclass method
directly, or something.
Here's what I'm doing to make this work:
class ManageableNodeList(ManageableWrapper, DOMProxy.NodeListProxy, Acquisition.Implicit):
def __getslice__(self, i, j):
return self.__getattr__("__getslice__")(i,j)
def __getitem__(self, i):
return self.__getattr__("__getitem__")(i)
--
Karl Anderson karl@digicool.com