##
5.3.2 `defaultdict` objects

`defaultdict`( | [default_factory[, ...]])

  Returns a new dictionary-like object. `defaultdict` is a subclass of the builtin `dict` class. It overrides one method and adds one writable instance variable. The remaining functionality is the same as for the `dict` class and is not documented here.

  The first argument provides the initial value for the `default_factory` attribute; it defaults to `None`. All remaining arguments are treated the same as if they were passed to the `dict` constructor, including keyword arguments.

  New in version 2.5.

`defaultdict` objects support the following method in addition to the standard `dict` operations:

`__missing__`( | key)

  If the `default_factory` attribute is `None`, this raises an `KeyError` exception with the key as argument.

  If `default_factory` is not `None`, it is called without arguments to provide a default value for the given key, this value is inserted in the dictionary for the key, and returned.

  If calling `default_factory` raises an exception this exception is propagated unchanged.

  This method is called by the `__getitem__` method of the `dict` class when the requested key is not found; whatever it returns or raises is then returned or raised by `__getitem__`.

`defaultdict` objects support the following instance variable:

`default_factory`
  This attribute is used by the `__missing__` method; it is initialized from the first argument to the constructor, if present, or to `None`, if absent.