Я пишу функцию, которая в качестве одного из аргументов примет словарь функций для применения. У всех этих функций будет по крайней мере один общий аргумент, но у некоторых будут другие. Не теряя гибкости, позволяя пользователю определять произвольные функции (при условии, что их аргументы находятся в области видимости), как я могу проанализировать функцию, чтобы увидеть ее аргументы?
Вот фиктивный пример:
def f1(x, y):
return x+y
def f2(x):
return x**2
fundict = dict(f1 = f1,
f2 = f2)
y = 3 # this will always be defined in the same scope as fundict
for i in list(fundict.keys()):
if <the args to the function have y in them>:
fundict[i](x, y)
else:
fundict[i](x)
Еще лучше было бы то, что программно смотрит на определение функции и передает ей массив аргументов, при условии, что они находятся в области видимости. ,
Я также был бы признателен за хорошие общие рекомендации по go различным способам решения этой проблемы, которые могут не включать интроспекцию функции.