From: Barry Warsaw Date: Mon, 26 Feb 2001 18:09:15 +0000 (+0000) Subject: instancemethod_setattro(): Raise TypeError if an attempt is made to X-Git-Tag: v2.1b1~201 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4f9b13bac8335d4614499673a3349b2c97401f12;p=python instancemethod_setattro(): Raise TypeError if an attempt is made to set a function attribute on a method (either bound or unbound). This reverts to Python 2.0 behavior that no attributes of the method are writable, but provides a more informative error message. --- diff --git a/Objects/classobject.c b/Objects/classobject.c index bb17df174a..9cca19f832 100644 --- a/Objects/classobject.c +++ b/Objects/classobject.c @@ -1866,21 +1866,8 @@ instancemethod_setattro(register PyMethodObject *im, PyObject *name, { char *sname = PyString_AsString(name); - if (PyEval_GetRestricted() || - strcmp(sname, "im_func") == 0 || - strcmp(sname, "im_self") == 0 || - strcmp(sname, "im_class") == 0) - { - PyErr_Format(PyExc_TypeError, "read-only attribute: %s", - sname); - return -1; - } - if (im->im_self != NULL) { - PyErr_Format(PyExc_TypeError, - "cannot set attributes through bound methods"); - return -1; - } - return PyObject_SetAttr(im->im_func, name, v); + PyErr_Format(PyExc_TypeError, "read-only attribute: %s", sname); + return -1; }