[Grok-dev] Re: Iterativly emptying a grok.container shows weird
behavior
Martijn Faassen
faassen at startifact.com
Tue Jun 12 15:09:08 EDT 2007
Hey,
Dr. Volker Jaenisch wrote:
> Yesterday I noticed that the tutorial (which I like otherwise very much)
> lead me to program nonsense.
> Me as experianced programmer may find the error - the Enduser that GROK
> addresses may not.
The minimal thing we should do is to say this in the tutorial: keys() is
actually like iterkeys() in Python, etc, etc.
I think these are good arguments to not replace keys() with iterkeys()
in plain python. :)
I haven't seen the answer yet elsewhere in the thread, but perhaps I
didn't read it correctly. Anyway, the simplest way to make this work as
expected is to use 'list()':
for key in list(container.keys()):
...
We could also consider petitioning Zope 3 to modify the container APIs
and change the behavior of keys() to use list() internally, and adding
an iterkeys(). This wouldn't be hard to implement, but the repercussions
might be large for some applications, so we'd need to do this carefully.
I'd be happy to help discuss this on zope3-dev.
Regards,
Martijn
More information about the Grok-dev
mailing list