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

Note: This module is available for backward compatibility only. If you are writing code that does not need to work with versions of Python earlier than Python 2.2, please consider subclassing directly from the built-in `dictionary` type.

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 behaviors to dictionaries.

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

class `UserDict`([initialdata])
  Class 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.2.7), `UserDict` instances provide the following attribute:

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