from typing import Callable class FunctionManager: def __init__(self): self.function_caller = {} self.function_predifine_args = {} def add_function(self, function:Callable, predifine_args:dict): self.function_caller[function.__name__] = function self.function_predifine_args[function.__name__] = predifine_args def get_function(self, function_name:str): return self.function_caller[function_name] def get_function_predifine_args(self, function_name:str): return self.function_predifine_args[function_name] def call_function(self, function_name:str, args:dict): print("call_function", function_name, args) return self.function_caller[function_name]( **args, **self.function_predifine_args[function_name])