Commit 82c690f1 authored by Guido van Rossum's avatar Guido van Rossum

Well darnit! The innocuous fix I made to PyObject_Print() caused

printing of instances not to look for __str__().  Fix this.
parent cab3f68f
......@@ -781,6 +781,25 @@ instance_repr(PyInstanceObject *inst)
return res;
}
static PyObject *
instance_str(PyInstanceObject *inst)
{
PyObject *func;
PyObject *res;
static PyObject *strstr;
if (strstr == NULL)
strstr = PyString_InternFromString("__str__");
func = instance_getattr(inst, strstr);
if (func == NULL) {
PyErr_Clear();
return instance_repr(inst);
}
res = PyEval_CallObject(func, (PyObject *)NULL);
Py_DECREF(func);
return res;
}
static long
instance_hash(PyInstanceObject *inst)
{
......@@ -1827,7 +1846,7 @@ PyTypeObject PyInstance_Type = {
&instance_as_mapping, /* tp_as_mapping */
(hashfunc)instance_hash, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
(reprfunc)instance_str, /* tp_str */
(getattrofunc)instance_getattr, /* tp_getattro */
(setattrofunc)instance_setattr, /* tp_setattro */
0, /* tp_as_buffer */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment