Chris Withers wrote at 2009-4-13 03:14 +0100: >The context for this is trying to get ParsedXML 1.5 running on Zope 2.12 >under Python 2.5 (don't ask why!) > >Anyway, ParsedXML has a class: > >class ManageableNodeList(ManageableWrapper, DOMProxy.NodeListProxy, > Acquisition.Implicit): > "A wrapper around a DOM NodeList." > meta_type = "Manageable NodeList" > > # redefine to get back the [] syntax with acquisition, eh? > def __getslice__(self, i, j): > return self.wrapNodeList(self._node.__getslice__(i,j)) > > # redefine to get back the [] syntax with acquisition, eh? > def __getitem__(self, i): > return self.wrapDOMObj(self._node.__getitem__(i)) > >If you try and iterate over an instance of this class, you get an >AttributeError: __iter__. This doesn't make a lot of sense, since you >*don't* get an error like that if you iterate over an instance of: > >class X: > def __getitem__(self,i): > return 1 > >I'm wondering there's some ExtensionClass or similar weirdness happening >here? > >(It didn't used to happen under Zope 2.9/Python 2.4)
It does not go wrong with Zope 2.11/Python 2.4, neither. Maybe, changes done for Python 2.5/2.6 compatibility broke something. Here is a simpler script to check for problems: from Acquisition import Implicit class C(Implicit): def __getitem__(self, i): return self.l[i] l=[1,2,3] c=C() iter(c) list(_) c2=C().__of__(c) iter(c2) list(_) -- Dieter _______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )