On 2/10/2019 10:47 AM, Ian Kelly wrote:
On Sat, Feb 9, 2019 at 1:19 PM Terry Reedy <tjre...@udel.edu> wrote:

This is the result of Python being a project of mostly unpaid volunteers.

See my response in this thread explaining how '/' appears in help output
and IDLE calltips.  '/' only appears for CPython C-coded functions that
have been modified to use Argument Clinic.  A.C. was added, I believe,
in 3.5.  Simple builtins like len would have been the first to be
converted.  The math module was converted for 3.7.  There are some new
conversions for 3.8 and likely some will be left for future versions.

I'm sure there are good reasons for it like most things Python does, but I
can't help but wonder if working on removing the positional limitation from
CPython would be a better use of time.

The pass-by-position limitation is not in CPython, it is the behavior of C functions, which is the behavior of function calls in probably every assembly and machine language. Allowing the flexibility of Python function calls take extra code and slows function calls.

math.sin, for instance, is a fast-as-possible wrapper around the C math library sin function. It extracts the C double from the Python float, calls C sin, and returns the returned C double wrapped as a Python float. Coredevs decided that being able to call math.sin(x=.33333) is not worth the resulting slowdown. I am rather sure that heavy users of the math module would agree.

--
Terry Jan Reedy

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to