diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2015-05-04 19:45:53 +0300 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2015-05-04 19:45:53 +0300 |
commit | 5ab5ac5448573fa34cc2316d895706c24a412f36 (patch) | |
tree | 4300caa3782f3d9fd2da31e99117bdc69922d7f9 /py/obj.c | |
parent | 3d3ef36e977b5f5a4153b8df6447f3f73e4726e3 (diff) | |
download | micropython-5ab5ac5448573fa34cc2316d895706c24a412f36.tar.gz micropython-5ab5ac5448573fa34cc2316d895706c24a412f36.zip |
modbuiltins: Add NotImplemented builtin constant.
From https://docs.python.org/3/library/constants.html#NotImplemented :
"Special value which should be returned by the binary special methods
(e.g. __eq__(), __lt__(), __add__(), __rsub__(), etc.) to indicate
that the operation is not implemented with respect to the other type;
may be returned by the in-place binary special methods (e.g. __imul__(),
__iand__(), etc.) for the same purpose. Its truth value is true."
Some people however appear to abuse it to mean "no value" when None is
a legitimate value (don't do that).
Diffstat (limited to 'py/obj.c')
-rw-r--r-- | py/obj.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -62,6 +62,14 @@ void mp_obj_print_helper(const mp_print_t *print, mp_obj_t o_in, mp_print_kind_t return; } #endif + + #if MICROPY_PY_BUILTINS_NOTIMPLEMENTED + if (o_in == MP_OBJ_SENTINEL) { + mp_printf(print, "%q", MP_QSTR_NotImplemented); + return; + } + #endif + mp_obj_type_t *type = mp_obj_get_type(o_in); if (type->print != NULL) { type->print((mp_print_t*)print, o_in, kind); |