On Mon, Nov 4, 2013 at 3:36 PM, Nick Coghlan <ncogh...@gmail.com> wrote:

> On 5 Nov 2013 08:49, "Larry Hastings" <la...@hastings.org> wrote:
> > When Clinic generates a function, it knows what kind of callable it
> represents, and it names the first argument (the "PyObject *") accordingly:
> > module-level function ("self"),
> > method ("self"),
> > class method ("cls"), or
> > class static ("null").
> > I now boldly propose that for the first one, the module-level function,
> the PyObject * parameter should be named "module".  The object passed in is
> the module object, it's not a "self" in any conventional sense of the word.
> >
> > This would enhance readability, as I assert the name "self" there is
> confusing.  The argument is rarely used on module-level functions, and very
> little code is converted right now using Clinic anyway.  I therefore assert
> this change would break very little code, and the code that did get broken
> by this change could be fixed as part of the process of converting it to
> Clinic.
> >
> > But now would be the time to make this change, before doing the big push
> to convert to Clinic.  (A couple of weeks ago would have been even
> better...!)
> >
> > +1?  -1?
>
> +1 from me, as they're not really methods of the module instance (i.e.
> dynamically bound when retrieved from the module), even though they behave
> a little like they are.
>
> Instead of relying on the descriptor protocol (which doesn't trigger
> because module level functions are stored in an instance namespace), we
> play games when creating the Python level callables during module creation
> in order to prebind the module object
>
+1 from me too. This finally fixes a silly mistake I made well over two
decades ago!

-- 
--Guido van Rossum (python.org/~guido)
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to