summaryrefslogtreecommitdiff
path: root/Objects/enumobject.c
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2004-02-08 10:49:42 +0000
committerRaymond Hettinger <python@rcn.com>2004-02-08 10:49:42 +0000
commit44c07ca73981249bd920a7a9b9d66cbd9a7bd41d (patch)
tree27f33c3855c98034e27d7cc09f5d52e1161833bf /Objects/enumobject.c
parent2c12e0250f1d7fb744ec648f6af2fb5c5c44a14e (diff)
downloadcpython-44c07ca73981249bd920a7a9b9d66cbd9a7bd41d.tar.gz
Let reversed() work with itself.
Diffstat (limited to 'Objects/enumobject.c')
-rw-r--r--Objects/enumobject.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/Objects/enumobject.c b/Objects/enumobject.c
index 7ed58da09e..3aac68095f 100644
--- a/Objects/enumobject.c
+++ b/Objects/enumobject.c
@@ -230,11 +230,22 @@ reversed_next(reversedobject *ro)
return item;
}
+static PyObject *
+reversed_reverse(reversedobject *ro, PyObject *unused)
+{
+ return PyObject_GetIter(ro->seq);
+}
+
PyDoc_STRVAR(reversed_doc,
"reverse(sequence) -> reverse iterator over values of the sequence\n"
"\n"
"Return a reverse iterator");
+static PyMethodDef reversed_methods[] = {
+ {"__reversed__", (PyCFunction)reversed_reverse,
+ METH_NOARGS, reversed_doc},
+};
+
PyTypeObject PyReversed_Type = {
PyObject_HEAD_INIT(&PyType_Type)
0, /* ob_size */
@@ -266,7 +277,7 @@ PyTypeObject PyReversed_Type = {
0, /* tp_weaklistoffset */
PyObject_SelfIter, /* tp_iter */
(iternextfunc)reversed_next, /* tp_iternext */
- 0, /* tp_methods */
+ reversed_methods, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */