<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set(self, key=None, username=None, base_url=None):
 """Update the credentials of a Credentials instance instead with new values. Args: key (str):
 API key of user account. Defaults to previous value if not specified. username (str):
 User name of account. This parameter is optional if `base_url` is not specified, but defaults to the previous value if not set. base_url (str):
 Base URL of user account. This parameter is optional if `username` is specified and on CARTO's cloud-based account. Generally of the form ``https://your_user_name.carto.com/`` for cloud-based accounts. If on-prem or otherwise, contact your admin. Example: .. code:: from cartoframes import Credentials # load credentials saved in previous session creds = Credentials() # set new API key creds.set(key='new_api_key') # save new creds to default user config directory creds.save() Note: If the `username` is specified but the `base_url` is not, the `base_url` will be updated to ``https://<username>.carto.com/``. """

        self.__init__(key=(key or self._key),
                      username=(username or self._username),
                      base_url=base_url)