> > 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
For reference, the more-itertools package on PyPI has `first()` and `last()` functions: https://more-itertools.readthedocs.io/en/stable/_modules/more_itertools/more.html#first. (Not endorsing details of their implementations -- just providing a reference to a piece of prior art.) On Tue, Oct 12, 2021 at 4:41 PM Christopher Barker <python...@gmail.com> wrote: > 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/ >
_______________________________________________ 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/ODGZXXYBBXJOJRQIP6TRIFXY6A7VRSMO/ Code of Conduct: http://python.org/psf/codeofconduct/