Make generator repr consistent with function and code object repr.
diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py
index 7be0a90..3702abc 100644
--- a/Lib/test/test_generators.py
+++ b/Lib/test/test_generators.py
@@ -927,7 +927,7 @@
>>> g.__name__
'f'
>>> repr(g) # doctest: +ELLIPSIS
-'<f generator object at ...>'
+'<generator object f at ...>'
"""
# conjoin is a simple backtracking generator, named in honor of Icon's
diff --git a/Lib/test/test_genexps.py b/Lib/test/test_genexps.py
index ab9f85d..a86f12f 100644
--- a/Lib/test/test_genexps.py
+++ b/Lib/test/test_genexps.py
@@ -92,7 +92,7 @@
Verify that parenthesis are required when used as a keyword argument value
>>> dict(a = (i for i in xrange(10))) #doctest: +ELLIPSIS
- {'a': <<genexpr> generator object at ...>}
+ {'a': <generator object <genexpr> at ...>}
Verify early binding for the outermost for-expression
diff --git a/Objects/genobject.c b/Objects/genobject.c
index 3cd911d..d2ef508 100644
--- a/Objects/genobject.c
+++ b/Objects/genobject.c
@@ -288,7 +288,7 @@
code_name = PyString_AsString(((PyCodeObject *)gen->gi_code)->co_name);
if (code_name == NULL)
return NULL;
- return PyString_FromFormat("<%.200s generator object at %p>",
+ return PyString_FromFormat("<generator object %.200s at %p>",
code_name, gen);
}