diff options
author | Peter D. Gray <peter@conalgo.com> | 2015-03-06 14:48:14 -0500 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2015-03-11 20:02:06 +0000 |
commit | b2a237d337b82085c5cd54da76d67f9fe5bf1489 (patch) | |
tree | 02d686a9a17407278498c83859c6444563eae149 /py/objrange.c | |
parent | 5be4a84a58c54eed756a93ed4cba9ed24bdd7ef2 (diff) |
py: Add support for start/stop/step attributes of builtin range object.
Diffstat (limited to 'py/objrange.c')
-rw-r--r-- | py/objrange.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/py/objrange.c b/py/objrange.c index cc3270159..ff62cc5b8 100644 --- a/py/objrange.c +++ b/py/objrange.c @@ -166,6 +166,20 @@ STATIC mp_obj_t range_getiter(mp_obj_t o_in) { return mp_obj_new_range_iterator(o->start, o->stop, o->step); } + +#if MICROPY_PY_BUILTINS_RANGE_ATTRS +STATIC void range_load_attr(mp_obj_t o_in, qstr attr, mp_obj_t *dest) { + mp_obj_range_t *o = o_in; + if (attr == MP_QSTR_start) { + dest[0] = mp_obj_new_int(o->start); + } else if (attr == MP_QSTR_stop) { + dest[0] = mp_obj_new_int(o->stop); + } else if (attr == MP_QSTR_step) { + dest[0] = mp_obj_new_int(o->step); + } +} +#endif + const mp_obj_type_t mp_type_range = { { &mp_type_type }, .name = MP_QSTR_range, @@ -174,4 +188,7 @@ const mp_obj_type_t mp_type_range = { .unary_op = range_unary_op, .subscr = range_subscr, .getiter = range_getiter, +#if MICROPY_PY_BUILTINS_RANGE_ATTRS + .load_attr = range_load_attr, +#endif }; |