py: Wrap .__class__ handling in MICROPY_CPYTHON_COMPAT.

Because it's superfluos in the presence of type(), a remenant from Python's
"old classes".
This commit is contained in:
Paul Sokolovsky 2014-03-31 20:30:08 +03:00
parent b509f73982
commit 6ce78c4fae
1 changed files with 4 additions and 1 deletions

View File

@ -716,10 +716,13 @@ STATIC void mp_load_method_maybe(mp_obj_t base, qstr attr, mp_obj_t *dest) {
// if nothing found yet, look for built-in and generic names // if nothing found yet, look for built-in and generic names
if (dest[0] == MP_OBJ_NULL) { if (dest[0] == MP_OBJ_NULL) {
#if MICROPY_CPYTHON_COMPAT
if (attr == MP_QSTR___class__) { if (attr == MP_QSTR___class__) {
// a.__class__ is equivalent to type(a) // a.__class__ is equivalent to type(a)
dest[0] = type; dest[0] = type;
} else if (attr == MP_QSTR___next__ && type->iternext != NULL) { } else
#endif
if (attr == MP_QSTR___next__ && type->iternext != NULL) {
dest[0] = (mp_obj_t)&mp_builtin_next_obj; dest[0] = (mp_obj_t)&mp_builtin_next_obj;
dest[1] = base; dest[1] = base;
} else if (type->load_attr == NULL) { } else if (type->load_attr == NULL) {