dict literals vs dict(**kwds)

Alex Martelli aleax at mac.com
Tue May 23 23:11:54 EDT 2006


George Sakkis <george.sakkis at gmail.com> wrote:

> Bruno Desthuilliers wrote:
> 
> > George Sakkis a écrit :
> > > Although I consider dict(**kwds) as one of the few unfortunate design
> > > choices in python since it prevents the future addition of useful
> > > keyword arguments (e.g a default value or an orderby function), I've
> > > been finding myself lately using it sometimes instead of dict literals,
> > > for no particular reason. Is there any coding style consensus on when
> > > should dict literals be preferred over dict(**kwds) and vice versa ?
> >
> > using dict literals means that you'll always have a builtin dict - you
> > cannot dynamically select another dict-like class. OTHO, you can only
> > use valid python identifiers as keys with dict(**kw).
> 
> This is all good but doesn't answer my original question: under which
> circumstances (if any) would  {'name':'Mike, 'age':23} be preferred
> over dict(name='Mike', age=23) and vice versa, or if it's just a matter
> of taste, similar to using single vs double quote for string literals
> (when both are valid of course).

My personal favorite style is always to call the type when applicable
(and reasonably forecast to _remain_ applicable in future code changes),
because readability benefits.


Alex



More information about the Python-list mailing list