diff Objects/rangeobject.c @ 73378:4643be424293

add introspection to range objects (closes #9896) Patch by Daniel Urban.
author Benjamin Peterson <benjamin@python.org>
date Sat, 05 Nov 2011 15:17:52 -0400
parents 479a7dd1ea6a
children 4ff234337e24
line wrap: on
line diff
--- a/Objects/rangeobject.c	Sat Nov 05 17:51:52 2011 +0100
+++ b/Objects/rangeobject.c	Sat Nov 05 15:17:52 2011 -0400
@@ -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 @@
     {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 @@
         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 */