On Oct 27, 5:31 pm, Steven D'Aprano <steve
+comp.lang.pyt...@pearwood.info> wrote:
> From the outside, you can't tell how big a generator expression is. It has no 
> length:

I understand that.

> Since the array object has no way of telling whether the generator will have 
> the correct size, it refuses to guess.

It doesn't have to guess.  It can assume that I, the programmer, know
what the heck I am doing, and then validate that assumption -- trust,
but verify.  It merely needs to fill the slice and then ask for one
more and check that StopIteration is raised.

> I would argue that it should raise a TypeError
> with a less misleading error message, rather
> than a ValueError, so "bug".

And I would argue that it should simply work, unless someone can
present a more compelling reason why not.

> The simple solution is to use a list comp
> instead of a generator expression.

I know how to work around the issue.  I'm not sure I should have to.
It violates the principle of least surprise for the ctypes array to
not be able to interoperate with the iterator protocol in this
fashion.

Regards,
Pat
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to