Что?
Я пытаюсь импортировать все функции из файла (с учетом его пути) в список / dict
В данный момент я использую то, что было сказано здесь и здесь . В результате это
import inspect
import importlib.util
def functions_from_file(path_to_module):
spec = importlib.util.spec_from_file_location("my_module",
path_to_module)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
custom_functions = inspect.getmembers(module, inspect.isfunction)
return dict(custom_functions)
Это, по крайней мере для меня, кажется очень запутанным. Есть ли лучший / более чистый способ сделать это?
Почему?
Причина, по которой я это делаю, заключается в том, что я хочу, чтобы пользователь мог указать файл, содержащий список функцийэто будет выполнено в середине моего кода. Таким образом, файл может выглядеть примерно так:
def fun1(my_dict):
my_dict['foo'] = my_dict['bar']*2
def fun2(my_dict):
my_dict['baz'] = my_dict['foo'] - my_dict['bar']
, и тогда в моем коде должно быть что-то вроде
for fun in functions_list:
fun(my_dict)