'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, value):

    if (key in self):
        return self[key]
    self.set(key, value)
    return value
