On 07/26/2017 09:05 AM, Nick Coghlan wrote:
On 26 July 2017 at 11:05, Steven D'Aprano <st...@pearwood.info> wrote:

I don't see any way that this proposal can be anything by a subtle
source of bugs. We have two *incompatible* requirements:

- we want to define the order of the fields according to the
   order we give keyword arguments;

- we want to give keyword arguments in any order without
   caring about the field order.

We can't have both, and we can't give up either without being a
surprising source of annoyance and bugs.

I think the second stated requirement isn't a genuine requirement, as
that *isn't* a general expectation.

I have to agree with D'Aprano on this one. I certainly do not *expect* keyword argument position to matter, and it seems to me the primary reason to make it matter was not for dicts, but because a class name space is implemented by dicts.

Tuples, named or otherwise, are positional first -- order matters.  Specifying

    point = ntuple(y=2, x=-3)

and having point[0] == 3 is going to be bizarre.  This will be a source for 
horrible bugs.

--
~Ethan~

_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to