<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def call_script(self, script_dict, keys=None, args=None):
 """Call a redis script with keys and args The first time we call a script, we register it to speed up later calls. We expect a dict with a ``lua`` key having the script, and the dict will be updated with a ``script_object`` key, with the content returned by the the redis-py ``register_script`` command. Parameters script_dict: dict A dict with a ``lua`` entry containing the lua code. A new key, ``script_object`` will be added after that. keys: list of str List of the keys that will be read/updated by the lua script args: list of str List of all the args expected by the script. Returns ------- Anything that will be returned by the script """

        if keys is None:
            keys = []
        if args is None:
            args = []
        if 'script_object' not in script_dict:
            script_dict['script_object'] = self.connection.register_script(script_dict['lua'])
        return script_dict['script_object'](keys=keys, args=args, client=self.connection)