* Uncomment the SyntaxError doctest after Tim demonstrated how.

* Remove unnecessary sys.PS2 prompt lines.
This commit is contained in:
Raymond Hettinger 2004-08-16 01:35:28 +00:00
parent 8df4e6b020
commit 3258e72c82

View file

@ -60,28 +60,26 @@ Test running gen when defining function is out of scope
>>> def f(n): >>> def f(n):
... return (i*i for i in xrange(n)) ... return (i*i for i in xrange(n))
...
>>> list(f(10)) >>> list(f(10))
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> def f(n): >>> def f(n):
... return ((i,j) for i in xrange(3) for j in xrange(n)) ... return ((i,j) for i in xrange(3) for j in xrange(n))
...
>>> list(f(4)) >>> list(f(4))
[(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3)] [(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3)]
>>> def f(n): >>> def f(n):
... return ((i,j) for i in xrange(3) for j in xrange(4) if j in xrange(n)) ... return ((i,j) for i in xrange(3) for j in xrange(4) if j in xrange(n))
...
>>> list(f(4)) >>> list(f(4))
[(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3)] [(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3)]
>>> list(f(2)) >>> list(f(2))
[(0, 0), (0, 1), (1, 0), (1, 1), (2, 0), (2, 1)] [(0, 0), (0, 1), (1, 0), (1, 1), (2, 0), (2, 1)]
#Verify that parenthesis are required in a statement Verify that parenthesis are required in a statement
#>>> def f(n): >>> def f(n):
#... return i*i for i in xrange(n) ... return i*i for i in xrange(n)
#... Traceback (most recent call last):
#SyntaxError: invalid syntax ...
SyntaxError: invalid syntax
Verify early binding for the outermost for-expression Verify early binding for the outermost for-expression
@ -137,12 +135,10 @@ Generators always return to the most recent caller:
... r = yrange(5) ... r = yrange(5)
... print "creator", r.next() ... print "creator", r.next()
... return r ... return r
...
>>> def caller(): >>> def caller():
... r = creator() ... r = creator()
... for i in r: ... for i in r:
... print "caller", i ... print "caller", i
...
>>> caller() >>> caller()
creator 0 creator 0
caller 1 caller 1
@ -155,7 +151,6 @@ Generators can call other generators:
>>> def zrange(n): >>> def zrange(n):
... for i in yrange(n): ... for i in yrange(n):
... yield i ... yield i
...
>>> list(zrange(5)) >>> list(zrange(5))
[0, 1, 2, 3, 4] [0, 1, 2, 3, 4]