Is generator.next() visible in Python 3?
Solution 1:
g.next()
has been renamed to g.__next__()
. The reason for this is consistency: special methods like __init__()
and __del__()
all have double underscores (or "dunder" in the current vernacular), and .next()
was one of the few exceptions to that rule. This was fixed in Python 3.0. [*]
But instead of calling g.__next__()
, use next(g)
.
[*] There are other special attributes that have gotten this fix; func_name
, is now __name__
, etc.
Solution 2:
Try:
next(g)
Check out this neat table that shows the differences in syntax between 2 and 3 when it comes to this.