Python: Why should I use next() and not obj.next()?

PEP 3114 describes this change. An excerpt about the motivation:

This PEP proposes that the next method be renamed to __next__,
consistent with all the other protocols in Python in which a method is
implicitly called as part of a language-level protocol, and that a
built-in function named next be introduced to invoke __next__ method,
consistent with the manner in which other protocols are explicitly
invoked.

Be sure to read this PEP for more interesting details.

As for why you want to use the next built-in: one good reason is that the next method disappears in Python 3, so for portability it’s better to start using the next built-in as soon as possible.

Leave a Comment