Teach the types module about generators. Thanks to James Althoff on the
Iterators list for bringing it up!
This commit is contained in:
parent
ae1f65ff82
commit
3e7b1a04a0
|
@ -83,6 +83,12 @@ The type of user-defined functions and lambdas.
|
||||||
An alternate name for \code{FunctionType}.
|
An alternate name for \code{FunctionType}.
|
||||||
\end{datadesc}
|
\end{datadesc}
|
||||||
|
|
||||||
|
\begin{datadesc}{GeneratorType}
|
||||||
|
The type of generator-iterator objects, produced by calling a
|
||||||
|
generator function.
|
||||||
|
\versionadded{2.2}
|
||||||
|
\end{datadesc}
|
||||||
|
|
||||||
\begin{datadesc}{CodeType}
|
\begin{datadesc}{CodeType}
|
||||||
The type for code objects such as returned by
|
The type for code objects such as returned by
|
||||||
\function{compile()}\bifuncindex{compile}.
|
\function{compile()}\bifuncindex{compile}.
|
||||||
|
|
|
@ -367,6 +367,26 @@ Next one was posted to c.l.py.
|
||||||
4-combs of [1, 2, 3, 4]:
|
4-combs of [1, 2, 3, 4]:
|
||||||
[1, 2, 3, 4]
|
[1, 2, 3, 4]
|
||||||
5-combs of [1, 2, 3, 4]:
|
5-combs of [1, 2, 3, 4]:
|
||||||
|
|
||||||
|
# From the Iterators list, about the types of these things.
|
||||||
|
|
||||||
|
>>> def g():
|
||||||
|
... yield 1
|
||||||
|
...
|
||||||
|
>>> type(g)
|
||||||
|
<type 'function'>
|
||||||
|
>>> i = g()
|
||||||
|
>>> type(i)
|
||||||
|
<type 'generator'>
|
||||||
|
>>> dir(i)
|
||||||
|
['next']
|
||||||
|
>>> print i.next.__doc__
|
||||||
|
next() -- get the next value, or raise StopIteration
|
||||||
|
>>> iter(i) is i
|
||||||
|
1
|
||||||
|
>>> import types
|
||||||
|
>>> isinstance(i, types.GeneratorType)
|
||||||
|
1
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Fun tests (for sufficiently warped notions of "fun").
|
# Fun tests (for sufficiently warped notions of "fun").
|
||||||
|
|
|
@ -32,6 +32,11 @@ try:
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def g():
|
||||||
|
yield 1
|
||||||
|
GeneratorType = type(g())
|
||||||
|
del g
|
||||||
|
|
||||||
class _C:
|
class _C:
|
||||||
def _m(self): pass
|
def _m(self): pass
|
||||||
ClassType = type(_C)
|
ClassType = type(_C)
|
||||||
|
|
Loading…
Reference in New Issue