[Python-Dev] Proposal: defaultdict (original) (raw)

Adam Olsen rhamph at gmail.com
Sat Feb 18 20:06:59 CET 2006


On 2/18/06, James Y Knight <foom at fuhm.net> wrote:

On Feb 18, 2006, at 2:33 AM, Martin v. Löwis wrote: > Well, as you say: you get a KeyError if there is an error with the > key. > With a defaultfactory, there isn't normally an error with the key.

But there should be. Consider the case of two servers. One which takes all the items out of the dictionary (using items()) and puts them in some other data structure. Then it checks if the "Date" header has been set. It was not, so it adds it. Consider another similar server which checks if the "Date" header has been set on the dict passed in by the user. The defaultfactory then makes one up. Different behavior due to internal implementation details of how the server uses the dict object, which is what the restriction to exactly dict prevents.

It just occured to me, what affect does this have on repr? Does it attempt to store the default_factory in the representation, or does it remove it? Is it even possible to store a reference to a builtin such as list and have eval restore it?

-- Adam Olsen, aka Rhamphoryncus



More information about the Python-Dev mailing list