About that 'yield' word

T

Tobiah

def maker():
for i in range(100):
yield i


foo:4: Warning: 'yield' will become a reserved keyword in the future
File "foo", line 4
yield i
^
SyntaxError: invalid syntax

Python 2.2.2


???
 
A

Alex Martelli

Tobiah said:
def maker():
for i in range(100):
yield i


foo:4: Warning: 'yield' will become a reserved keyword in the future
File "foo", line 4
yield i
^
SyntaxError: invalid syntax

Python 2.2.2


???

You seem to have omitted the necessary statement at the start
of your module (in Python 2.2):
from __future__ import generators

Alternatively, upgrade to 2.3, and you won't need that statement
any more.


Alex
 
D

David Eppstein

I guess this was just thrown together as an example of "yield", rather
than real code, but:

def maker():
return range(100)

seems a little less contorted...
 
L

Lulu of the Lotus-Eaters

|Tobiah wrote:
|> > def maker():
|> > for i in range(100):
|> > yield i

|I guess this was just thrown together as an example of "yield", rather
|than real code, but:
|def maker():
| return range(100)

And less contorted still is:

xrange(100)

:).
 
A

Andrew Koenig

def maker():
David> I guess this was just thrown together as an example of "yield",
David> rather than real code, but:

David> def maker():
David> return range(100)

David> seems a little less contorted...

Maybe so, but it behaves differently so direct comparisons aren't
particularly helpful:
.... for i in range(100):
.... yield i
.... .... return range(100)
.... [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
 
D

David Eppstein

Andrew Koenig said:
David> def maker():
David> return range(100)

David> seems a little less contorted...

Maybe so, but it behaves differently so direct comparisons aren't
particularly helpful:

I considered mentioning iter(range(100)) instead but I couldn't think of
an actual reason one would care about the difference.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,906
Latest member
SkinfixSkintag

Latest Threads

Top