Mercurial > cpython-lru_cache-weakref
diff Objects/enumobject.c @ 31502:59538d3b7cd2 legacy-trunk
Make reversed() transparent with respect to length.
| author | Raymond Hettinger <python@rcn.com> |
|---|---|
| date | Tue, 10 Feb 2004 09:33:39 +0000 |
| parents | f30aaac00195 |
| children | ec6ba03ba962 |
line wrap: on
line diff
--- a/Objects/enumobject.c Tue Feb 10 09:25:40 2004 +0000 +++ b/Objects/enumobject.c Tue Feb 10 09:33:39 2004 +0000 @@ -230,6 +230,12 @@ return item; } +static int +reversed_len(reversedobject *ro) +{ + return PyObject_Size(ro->seq); +} + static PyObject * reversed_reverse(reversedobject *ro, PyObject *unused) { @@ -244,6 +250,12 @@ static PyMethodDef reversed_methods[] = { {"__reversed__", (PyCFunction)reversed_reverse, METH_NOARGS, reversed_doc}, + {NULL, NULL} /* sentinel */ +}; + +static PySequenceMethods reversed_as_sequence = { + (inquiry)reversed_len, /* sq_length */ + 0, /* sq_concat */ }; PyTypeObject PyReversed_Type = { @@ -260,7 +272,7 @@ 0, /* tp_compare */ 0, /* tp_repr */ 0, /* tp_as_number */ - 0, /* tp_as_sequence */ + &reversed_as_sequence, /* tp_as_sequence */ 0, /* tp_as_mapping */ 0, /* tp_hash */ 0, /* tp_call */
