From 878ce389a08594a805cf382a73414be02143396c Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Sat, 5 Nov 2011 15:17:52 -0400 Subject: add introspection to range objects (closes #9896) Patch by Daniel Urban. --- Objects/rangeobject.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'Objects/rangeobject.c') diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c index c1e9e54303..fb6a5fe02d 100644 --- a/Objects/rangeobject.c +++ b/Objects/rangeobject.c @@ -1,6 +1,7 @@ /* Range object implementation */ #include "Python.h" +#include "structmember.h" /* Support objects whose length is > PY_SSIZE_T_MAX. @@ -880,6 +881,13 @@ static PyMethodDef range_methods[] = { {NULL, NULL} /* sentinel */ }; +static PyMemberDef range_members[] = { + {"start", T_OBJECT_EX, offsetof(rangeobject, start), READONLY}, + {"stop", T_OBJECT_EX, offsetof(rangeobject, stop), READONLY}, + {"step", T_OBJECT_EX, offsetof(rangeobject, step), READONLY}, + {0} +}; + PyTypeObject PyRange_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) "range", /* Name of this type */ @@ -909,7 +917,7 @@ PyTypeObject PyRange_Type = { range_iter, /* tp_iter */ 0, /* tp_iternext */ range_methods, /* tp_methods */ - 0, /* tp_members */ + range_members, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ -- cgit v1.2.1