diff options
| author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-03-31 04:43:21 +0300 |
|---|---|---|
| committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-03-31 17:22:38 +0300 |
| commit | e566670153adc1d995206eaf3a9e606000a789d4 (patch) | |
| tree | 36ebdbc4307a1518f3906073e7d09572dde248bc | |
| parent | 7da0660516e1406808ad212d35faa95de3316fc4 (diff) | |
objtype: Add virtual __name__ attribute.
It's virtual because it's not shown in dir(...). (That's also how CPython
has it).
| -rw-r--r-- | py/objtype.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/py/objtype.c b/py/objtype.c index 127512480..ee3ce12ab 100644 --- a/py/objtype.c +++ b/py/objtype.c @@ -297,6 +297,10 @@ STATIC mp_obj_t type_call(mp_obj_t self_in, uint n_args, uint n_kw, const mp_obj STATIC void type_load_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest) { assert(MP_OBJ_IS_TYPE(self_in, &mp_type_type)); mp_obj_type_t *self = self_in; + if (attr == MP_QSTR___name__) { + dest[0] = MP_OBJ_NEW_QSTR(self->name); + return; + } mp_obj_t member = mp_obj_class_lookup(self, attr); if (member != MP_OBJ_NULL) { // check if the methods are functions, static or class methods |
