如何在不运行函数的情况下部分设置函数的参数?

amo*_*mos 4 python function

我正努力为用户提供尽可能简单的生活,同时为他们提供完全的灵活性.我需要编写函数供他们使用,但诀窍是用户需要在运行之前选择函数.这就是我想做的事情:

def standardGenerator(obj,param=8.0):
   # algorithm which generates stuff based on obj and param
   return stuff

opts.usersChoice = standardGenerator
Run Code Online (Sandbox Code Playgroud)

在这个例子中,opts是一个选项容器,提供给用户设置他们想要的任何选项.当他们完成所有选项后,他们会opts回复给我.

现在的问题是,只有在我手中obj之后才能知道opts,但也许用户想要params=4.0而不是我的默认值.我的问题是允许用户设置的最简单方法是什么param

这是我想到的想法:

def standardGenerator4(obj):
   return standardGenerator(obj,param=4.0)
opts.usersChoice = standardGenerator4

opts.usersChoice = lambda obj: standardGenerator(obj,4.0)
Run Code Online (Sandbox Code Playgroud)

可能lambda是最好的主意,但我想知道是否有其他方法可以做到这一点,而不要求用户知道什么是lambda函数...

sen*_*rle 7

那么,另一种方法是使用functools.partial.