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