py/objtuple: Allow to use inplace-multiplication operator on tuples.

This commit is contained in:
Damien George 2017-08-09 21:20:42 +10:00
parent cb7ecda9f0
commit eb2784e8a2
2 changed files with 7 additions and 1 deletions

View File

@ -148,7 +148,8 @@ mp_obj_t mp_obj_tuple_binary_op(mp_uint_t op, mp_obj_t lhs, mp_obj_t rhs) {
mp_seq_cat(s->items, o->items, o->len, p->items, p->len, mp_obj_t); mp_seq_cat(s->items, o->items, o->len, p->items, p->len, mp_obj_t);
return MP_OBJ_FROM_PTR(s); return MP_OBJ_FROM_PTR(s);
} }
case MP_BINARY_OP_MULTIPLY: { case MP_BINARY_OP_MULTIPLY:
case MP_BINARY_OP_INPLACE_MULTIPLY: {
mp_int_t n; mp_int_t n;
if (!mp_obj_get_int_maybe(rhs, &n)) { if (!mp_obj_get_int_maybe(rhs, &n)) {
return MP_OBJ_NULL; // op not supported return MP_OBJ_NULL; // op not supported

View File

@ -11,6 +11,11 @@ a = (1, 2, 3)
c = a * 3 c = a * 3
print(a, c) print(a, c)
# inplace multiplication
a = (1, 2)
a *= 2
print(a)
# unsupported type on RHS # unsupported type on RHS
try: try:
() * None () * None