From f20375eedd22eeee5f1b273f891631bed8878cdc Mon Sep 17 00:00:00 2001 From: Damien George Date: Tue, 12 Aug 2014 19:57:52 +0100 Subject: py: Add .real and .imag attributes to complex numbers. --- py/objcomplex.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'py/objcomplex.c') diff --git a/py/objcomplex.c b/py/objcomplex.c index 20e7c97d3..0c58dee65 100644 --- a/py/objcomplex.c +++ b/py/objcomplex.c @@ -132,6 +132,15 @@ STATIC mp_obj_t complex_binary_op(int op, mp_obj_t lhs_in, mp_obj_t rhs_in) { return mp_obj_complex_binary_op(op, lhs->real, lhs->imag, rhs_in); } +STATIC void complex_load_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest) { + mp_obj_complex_t *self = self_in; + if (attr == MP_QSTR_real) { + dest[0] = mp_obj_new_float(self->real); + } else if (attr == MP_QSTR_imag) { + dest[0] = mp_obj_new_float(self->imag); + } +} + const mp_obj_type_t mp_type_complex = { { &mp_type_type }, .name = MP_QSTR_complex, @@ -139,6 +148,7 @@ const mp_obj_type_t mp_type_complex = { .make_new = complex_make_new, .unary_op = complex_unary_op, .binary_op = complex_binary_op, + .load_attr = complex_load_attr, }; mp_obj_t mp_obj_new_complex(mp_float_t real, mp_float_t imag) { -- cgit v1.2.3