我正在努力让我的用户的生活尽可能轻松,同时为他们提供完全的灵 active 。我需要编写函数供他们使用,但诀窍在于用户需要在运行之前选择函数。这是我想做的:
def standardGenerator(obj,param=8.0):
# algorithm which generates stuff based on obj and param
return stuff
opts.usersChoice = standardGenerator
在这个例子中,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)
lambda 可能是最好的主意,但我想知道是否有其他方法可以做到这一点而不需要用户知道什么是 lambda 函数...
最佳答案
好吧,另一种方法是使用 functools.partial
.
关于python - 如何在不运行函数的情况下部分设置函数的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9170430/