'Returns the value for the key if it is in the dict, otherwise it
returns `default` and sets that value for `key`.
:param key: The key to be looked up.
:param default: The default value to be returned if the key is not
in the dict.  If not further specified it\'s `None`.'

def setdefault(self, key, default=None):

    if (key not in self):
        self[key] = default
    else:
        default = self[key]
    return default
