У меня есть объект с набором функций, которые мне нужно сохранить (например, в JSON). Такие функции не привязаны к объекту и не оформлены и определены автономно в разных модулях. Есть ли способ программно получить модуль, в котором определена функция?
Что я ожидаю:
import importlib
class FunctionBag(object):
@property
def functions(self)
return self._functions
def __init__(self, functions):
self._functions = functions
def to_dict_for_json(self):
result = {}
for key, fn, in self._functions.items():
name = fn.__name__
module = MAGIC(fn)
result[key] = (module, name,)
@classmethod
def FromDictOfJson(cls, dct):
functions = {}
for key, value, in dct.items():
module,name, = value
module = importlib.import_module(module)
functions[key] = getattr(module, name)
return cls(functions)
Есть ли способ сделать то, что делает MAGIC ()?