Skip to content

Commit 7067d69

Browse files
committed
objnamedtuple: Support iteration.
1 parent 3793830 commit 7067d69

4 files changed

Lines changed: 5 additions & 1 deletion

File tree

py/objnamedtuple.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ mp_obj_t mp_obj_new_namedtuple_type(qstr name, const char *fields) {
160160
o->base.load_attr = namedtuple_load_attr;
161161
o->base.store_attr = namedtuple_store_attr;
162162
o->base.subscr = tuple_subscr;
163+
o->base.getiter = tuple_getiter;
163164
o->base.bases_tuple = (mp_obj_t)&namedtuple_base_tuple;
164165
o->fields = fields;
165166
return o;

py/objtuple.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ mp_obj_t tuple_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
174174
}
175175
}
176176

177-
STATIC mp_obj_t tuple_getiter(mp_obj_t o_in) {
177+
mp_obj_t tuple_getiter(mp_obj_t o_in) {
178178
return mp_obj_new_tuple_iterator(o_in, 0);
179179
}
180180

py/objtuple.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,4 @@ void tuple_print(void (*print)(void *env, const char *fmt, ...), void *env, mp_o
3434
mp_obj_t tuple_unary_op(int op, mp_obj_t self_in);
3535
mp_obj_t tuple_binary_op(int op, mp_obj_t lhs, mp_obj_t rhs);
3636
mp_obj_t tuple_subscr(mp_obj_t base, mp_obj_t index, mp_obj_t value);
37+
mp_obj_t tuple_getiter(mp_obj_t o_in);

tests/basics/namedtuple1.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
print(t + t)
1717
print(t * 3)
1818

19+
print([f for f in t])
20+
1921
print(isinstance(t, tuple))
2022

2123
try:

0 commit comments

Comments
 (0)