dict literals vs dict(**kwds)
George Sakkis
george.sakkis at gmail.com
Fri May 26 10:55:13 EDT 2006
Duncan Booth wrote:
> George Sakkis wrote:
>
> > 2) restricting in a more serious sense: the future addition of optional
> > keyword arguments that affect the dict's behaviour. Google for "default
> > dict" or "dictionary accumulator".
>
> There is nothing to stop dictionaries being created using factory functions
> (e.g. see dict.fromkeys). So one possible way to implement defaults would
> be to extend the dict class with a new classmethod 'withdefault' which
> takes a default value as an argument.
>
> However, given that the default argument isn't actually needed during
> construction, it doesn't seem to me that it fits either as a constructor
> parameter nor a factory method. I don't see why it shouldn't just be set on
> an existing dictionary (or dictionary subclass) when you need it.
Because I would find
d = dict(default=0)
d['x'] += 3
more elegant than
d = {}
d.withdefault(0)
d['x'] += 3
YMMV,
George
More information about the Python-list
mailing list