On Tue, Oct 12, 2021 at 4:51 AM Chris Angelico <ros...@gmail.com> wrote:

> > Exactly: simple usage of next is often a bug. We need to be careful
> about this every time someone suggests that it's straight-forward to do
> next(iter(obj)).
>
<snip>

> Please give a real example of where calling first() and getting
> ValueError is safer than calling next(iter(x)) and getting
> StopIteration. So far, I am undeterred in believing that the two
> exceptions have equivalent effect if the caller isn't expecting them.
>

I don't know about safer, but it is a clear example of why using
next(iter(obj)) requires a pretty complete knowledge of the iteration
protocol.

I can guarantee you I'd get some questions from my students when they got a
StopIterationError!

If one DID write a first() function, it maybe or maybe not should raise a
different exception, but it should certainly provide a better error message:

>>> next(iter([]))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

Is not very helpful.

-CHB





> ChrisA
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-ideas@python.org/message/2AL5FE3KZI4EBTRMJ7O5EL6MBVN7RUYF/
> Code of Conduct: http://python.org/psf/codeofconduct/
>


-- 
Christopher Barker, PhD (Chris)

Python Language Consulting
  - Teaching
  - Scientific Software Development
  - Desktop GUI and Web Development
  - wxPython, numpy, scipy, Cython
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/VQFAQMAKKQ6BG3VIP6BLZ6Q6RBB4V4CR/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to