Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #82049 > unrolled thread

Re: Setting default_factory of defaultdict to key

Started byJohn J Posner <johnjposner@verizon.net>
First post2014-12-05 15:51 -0500
Last post2014-12-05 15:51 -0500
Articles 1 — 1 participant

Back to article view | Back to comp.lang.python


Contents

  Re: Setting default_factory of defaultdict to key John J Posner <johnjposner@verizon.net> - 2014-12-05 15:51 -0500

#82049 — Re: Setting default_factory of defaultdict to key

FromJohn J Posner <johnjposner@verizon.net>
Date2014-12-05 15:51 -0500
SubjectRe: Setting default_factory of defaultdict to key
Message-ID<mailman.16662.1417949320.18130.python-list@python.org>
At the beginning of this thread, Ian Kelly said:

     Not with defaultdict, but you can subclass dict and provide a
     __missing__ method directly

To emphasize, you don't need to subclass "defaultdict" -- you need only subclass "dict" itself:

class MyDict(dict):
     def __missing__(self, key):
         self[key] = key
         return key

md = MyDict()
md[1] = 111
_ = md[2]
_ = md["another key"]


## md now looks like this:  {1: 111, 2: 2, 'another key': 'another key'}

The defaultdict documentation is confusing on this point. A *long* time ago, I filed Bug 9536 to improve the doc, but the fix hasn't bubbled to the surface yet.

[toc] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web