py: Add support for start/stop/step attributes of builtin range object.
This commit is contained in:
committed by
Damien George
parent
5be4a84a58
commit
b2a237d337
@@ -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
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user