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/