
Le 24/07/2017 à 16:12, Nick Coghlan a écrit :
On 22 July 2017 at 01:18, Guido van Rossum <guido@python.org> wrote:
Honestly I would like to declare the bare (x=1, y=0) proposal dead. Let's encourage the use of objects rather than tuples (named or otherwise) for most data exchanges. I know of a large codebase that uses dicts instead of objects, and it's a mess. I expect the bare ntuple to encourage the same chaos.
This is the people working on big code base talking. Remember, Python is not just for Google and Dropbox. We have thousands of user just being sysadmin, mathematicians, bankers, analysts, that just want a quick way to make a record. They don't want nor need a class. Dictionaries and collections.namedtuple are verbose and so they just used regular tuples. They don't use mypy either so having a type would be moot for them. In many languages we have the opposite problem: people using classes as a container for everything. It makes things very complicated with little value. Python actually has a good balance here. Yes, Python doesn't have pattern matching witch makes it harder to check if a nested data structure match the desired schema but all in all, the bloat/expressiveness equilibrium is quite nice. A litteral namedtuple would allow a clearer way to make a quick and simple record.
That sounds sensible to me - given ordered keyword arguments, anything that bare syntax could do can be done with a new builtin instead, and be inherently more self-documenting as a result.
Cheers, Nick.