summaryrefslogtreecommitdiff
path: root/Objects/classobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'Objects/classobject.c')
-rw-r--r--Objects/classobject.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/Objects/classobject.c b/Objects/classobject.c
index c362b80026..1c9cd7ee3f 100644
--- a/Objects/classobject.c
+++ b/Objects/classobject.c
@@ -173,7 +173,9 @@ class_getattr(register PyClassObject *op, PyObject *name)
}
v = class_lookup(op, name, &class);
if (v == NULL) {
- PyErr_SetObject(PyExc_AttributeError, name);
+ PyErr_Format(PyExc_AttributeError,
+ "class %.50s has no attribute '%.400s'",
+ PyString_AS_STRING(op->cl_name), sname);
return NULL;
}
Py_INCREF(v);
@@ -285,8 +287,9 @@ class_setattr(PyClassObject *op, PyObject *name, PyObject *v)
if (v == NULL) {
int rv = PyDict_DelItem(op->cl_dict, name);
if (rv < 0)
- PyErr_SetString(PyExc_AttributeError,
- "delete non-existing class attribute");
+ PyErr_Format(PyExc_AttributeError,
+ "class %.50s has no attribute '%.400s'",
+ PyString_AS_STRING(op->cl_name), sname);
return rv;
}
else
@@ -578,7 +581,8 @@ instance_getattr1(register PyInstanceObject *inst, PyObject *name)
}
v = instance_getattr2(inst, name);
if (v == NULL) {
- PyErr_Format(PyExc_AttributeError,"'%.50s' instance has no attribute '%.400s'",
+ PyErr_Format(PyExc_AttributeError,
+ "%.50s instance has no attribute '%.400s'",
PyString_AS_STRING(inst->in_class->cl_name), sname);
}
return v;
@@ -642,8 +646,10 @@ instance_setattr1(PyInstanceObject *inst, PyObject *name, PyObject *v)
if (v == NULL) {
int rv = PyDict_DelItem(inst->in_dict, name);
if (rv < 0)
- PyErr_SetString(PyExc_AttributeError,
- "delete non-existing instance attribute");
+ PyErr_Format(PyExc_AttributeError,
+ "%.50s instance has no attribute '%.400s'",
+ PyString_AS_STRING(inst->in_class->cl_name),
+ PyString_AS_STRING(name));
return rv;
}
else