All ‘next’ does is call ‘next’, which is part of the spec for ‘iterator’s.
Iterables return iterators when ‘iter’ is called on them. So they don’t need to support ‘next’ natively, their corresponding iterator does that.
Welcome to the Python community on the programming.dev Lemmy instance!
Past
November 2023
October 2023
July 2023
August 2023
September 2023
All ‘next’ does is call ‘next’, which is part of the spec for ‘iterator’s.
Iterables return iterators when ‘iter’ is called on them. So they don’t need to support ‘next’ natively, their corresponding iterator does that.
Exactly what I wanted to say. I understand teaching by example, but this is more like teaching by trial and error...
Yea, it is losing the forest for the trees. Next should be taught as part of iterators and for loops. It makes sense there. It doesn’t really stand on its own much.
To be honest, I’m not sure why it is a built in function… I feel like saying that python calls the ‘next’ function of your class when iterating is enough. But maybe I’m missing something.
The default
handling is pretty important.
What I find more interesting are 1. the two-argument form of iter
, and 2. the __getitem__
auto-implementation that causes there to be two incompatible definitions of Iterable
.
(btw your comments are using accidental formatting; use backticks: __next__
)