[Python-ideas] Why does BoundArguments use an OrderedDict?

Tim Delaney timothy.c.delaney at gmail.com
Thu Dec 18 21:18:31 CET 2014


On 19 December 2014 at 03:09, <random832 at fastmail.us> wrote:
>
> On Thu, Dec 18, 2014, at 02:05, Nick Coghlan wrote:
> > As far as I'm aware, it's an ordered dictionary because that makes the
> > default repr() predictable when binding arguments for a given function
> > (in the absence of after-the-fact manipulation like the example in the
> > docs that injects the default values as explicitly bound arguments).
> >
> > The inspect.signature() machinery includes quite a few things like
> > that where the serialisation as a human readable string is considered
> > as important then the programmatic representation.
>
> Would it be reasonable to make a lightweight "predictable dict" class
> that makes a weaker guarantee, e.g. that the enumeration order will
> match the insertion order in the case where it is filled from empty with
> no intervening deletions and not guaranteed in any other cases?


My understanding is that Raymond's alternative dict implementation works
exactly like this, and is noted as an alternative for PEP 468:
https://www.python.org/dev/peps/pep-0468/ .

Discussion starts at:
https://mail.python.org/pipermail/python-dev/2012-December/123028.html

Tim Delaney
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20141219/e207facc/attachment.html>


More information about the Python-ideas mailing list