[Python-Dev] Should we do away with unbound methods in Py3k?
Guido van Rossum
guido at python.org
Sat Nov 24 06:17:44 CET 2007
On Nov 22, 2007 11:12 PM, Christian Heimes <lists at cheimes.de> wrote:
> Guido van Rossum wrote:
> > It looks like we're in agreement to drop unbound methods and have a
> > reasonable set or arguments around it (e.g. keep staticmethod, no
> > changes to methods of builtin types, etc.). Do we need a PEP? It's
> > essentially a 2-line change in funcobject.c (func_descr_get()) -- plus
> > fixing up half a dozen or so unittests that specifically seem to test
> > the behavior of unbound methods.
>
> I'd like to help but after staring at the code for 10 minutes I still
> don't get how the descriptor function should be altered. Can you please
> give an example to a mer mortal? :)
Index: Objects/funcobject.c
===================================================================
--- Objects/funcobject.c (revision 59154)
+++ Objects/funcobject.c (working copy)
@@ -643,8 +643,10 @@
static PyObject *
func_descr_get(PyObject *func, PyObject *obj, PyObject *type)
{
- if (obj == Py_None)
- obj = NULL;
+ if (obj == Py_None || obj == NULL) {
+ Py_INCREF(func);
+ return func;
+ }
return PyMethod_New(func, obj, type);
}
[well, except those should be tabs not spaces]
--
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-Dev
mailing list