py: Fix logic bugs in object attribute/method extraction.
diff --git a/py/runtime.c b/py/runtime.c
index 1f4a524..6590e8e 100644
--- a/py/runtime.c
+++ b/py/runtime.c
@@ -859,10 +859,13 @@
                         // return a bound method, with self being the type of this object
                         dest[0] = ((mp_obj_static_class_method_t*)elem->value)->fun;
                         dest[1] = mp_obj_get_type(base);
-                    } else {
+                    } else if (mp_obj_is_callable(elem->value)) {
                         // return a bound method, with self being this object
-                        dest[0] = (mp_obj_t)elem->value;
+                        dest[0] = elem->value;
                         dest[1] = base;
+                    } else {
+                        // class member is a value, so just return that value
+                        dest[0] = elem->value;
                     }
                 }
             }