views:

80

answers:

3

Very basic question - how to get one value from a generator in Python?

So far I found I can get one by writing gen.next(). I just want to make sure this is the right way?

Thanks, Boda Cydo.

+1  A: 

This is the correct way to do it.

You can also use next(gen).

http://docs.python.org/library/functions.html#next

recursive
+6  A: 

Yes, or next(gen) in 2.6+.

Ignacio Vazquez-Abrams
+2  A: 

In Python <= 2.5, use gen.next(). This will work for all Python 2.x versions, but not Python 3.x

In Python >= 2.6, use next(gen). This is a built in function, and is clearer. It will also work in Python 3.

Both of these end up calling a specially named function, next(), which can be overridden by subclassing. In Python 3, however, this function has been renamed to __next__(), to be consistent with other special functions.

Christian Oudard