我想操作一个 lambda 函数列表。这个 lambda 函数列表中都包含同一个函数,我想要操作这个函数,给它添加一个额外的参数。
以下是我的示例:
有没有可能将这个函数列表更改为下面的形式,而不必重新编写整个函数列表?
请看下面的另一个例子,这是我试图做的事情。我有以下内容:
以下是我的示例:
def base_function(*args):
for arg in args:
print arg
list_of_functions = [
lambda new_arg: base_function(new_arg,'arg_1'),
lambda new_arg: base_function(new_arg,'arg_2'),
lambda new_arg: base_function(new_arg,'arg_3')
]
有没有可能将这个函数列表更改为下面的形式,而不必重新编写整个函数列表?
list_of_functions = [
lambda new_arg: base_function(new_arg,'arg_1','another_arg'),
lambda new_arg: base_function(new_arg,'arg_2','another_arg'),
lambda new_arg: base_function(new_arg,'arg_3','another_arg')
]
请看下面的另一个例子,这是我试图做的事情。我有以下内容:
def simple_function(arg,capitalize=False):
if capitalize:
print arg.upper()
else:
print arg
list_of_functions = [lambda key_word: simple_function(key_word),lambda key_word: simple_function(key_word)]
但我希望将list_of_functions更改为以下内容,而不必重新编写上面的list_of_functions或simple_function:
desired_list_of_functions = [lambda key_word: simple_function(key_word,capitalize=True),lambda key_word: simple_function(key_word,capitalize=True)]
functools.partial
,并且可能操作生成的对象的partial.args
(相同文档)? - aghast