# 3.3 `UserDict` -- Class wrapper for dictionary objects

This module defines a class that acts as a wrapper around dictionary objects. It is a useful base class for your own dictionary-like classes, which can inherit from them and override existing methods or add new ones. In this way one can add new behaviours to dictionaries.

The `UserDict` module defines the `UserDict` class:

`UserDict` ([intialdata])
  Return a class instance that simulates a dictionary. The instance's contents are kept in a regular dictionary, which is accessible via the `data` attribute of `UserDict` instances. If initialdata is provided, `data` is initialized with its contents; note that a reference to initialdata will not be kept, allowing it be used used for other purposes.

In addition to supporting the methods and operations of mappings (see section 2.1.6), `UserDict` instances provide the following attribute:

`data`
  A real dictionary used to store the contents of the `UserDict` class.