diff options
-rw-r--r-- | Objects/object.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Objects/object.c b/Objects/object.c index be3cce7..63c55ce 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -181,11 +181,13 @@ strobject(v) INCREF(v); return v; } + else if (v->ob_type->tp_str != NULL) + return (*v->ob_type->tp_str)(v); else { - object *func = getattr(v, "__str__"); + object *func; object *args; object *res; - if (func == NULL) { + if (!is_instanceobject(v) || (func = getattr(v, "__str__")) == NULL) { err_clear(); return reprobject(v); } |