Мне нужно объявить функционал динамически во время выполнения, которое имеет произвольное количество именованных аргументов (ключевые слова), так что другая библиотека может вызывать эту функцию со словарем в качестве аргументов. Вот пример того, что мне нужно:Закрытие с аргументами ключевого слова с именем после параметров в Python 2.7
def generateFunction(*kwrds):
#kwrds are a bunch of strings
def functionTheLibraryCalls('''an argument for every string in kwrds '''):
#Get all arguments in a tuple in the order as listed above
result = tuple(args)
#Code that needs to be executed inside the library,
#it can handle a variable number of arguments
return result
return functionTheLibraryCalls
f1 = generateFunction('x', 'y','z')
print f1(x = 3,y = 2, z = 1)
#>> (3,2,1)
f2 = generateFunction('a', 'b')
print f2(a = 10, b = 0)
#>> (10,0)
Возможно ли это в python 2.7? Параметры для f1 и f2 будут фактически переданы как dict. Если лямбда лучше для этого, это тоже хорошо.
Спасибо!