Differences between Class(Object) and Class(Dict) for dictionary usage?

Ian Kelly ian.g.kelly at gmail.com
Wed Apr 27 10:33:40 EDT 2016


On Tue, Apr 26, 2016 at 9:43 PM, Christopher Reimer
<christopher_reimer at icloud.com> wrote:
>     class Test2(dict):
>         def __init__(self):
>                 self.__dict__ = {'key', 'value'}

This class definition looks muddled. Because Test2 inherits from dict,
the object referred to by "self" will be a dict, and self.__dict__ is
actually a *different* dict, containing the attributes of self. The
line:

    self.__dict__ = {'key', 'value'}

is essentially equivalent to:

    self.key = value

and will be regardless of whether you inherit from object or dict. If
you find this distinction confusing, then I recommend not inheriting
from dict.



More information about the Python-list mailing list