我想要一个函数,它传递一些参数(在函数的执行之间可能会有所不同),但不是一次全部传递,然后在给定其余参数时执行函数。
这个想法是这是回调:
foo(argument)
但是 foo 是预先使用其他参数自定义的。
作为一个简单的例子,让我们来看看重叠与非重叠文本搜索的情况。我有一个功能:
def textSearch(text,substring,overlapping):
...
... # Do stuff
return index
它需要一个文本正文、一个子字符串和一个布尔值。它使用重叠或非重叠搜索在文本正文中搜索子字符串。我希望能够创建一个减少回调的函数实例:
textSearch(text)
通过在回调之前参数化子字符串和重叠字段,而无需创建另一个函数定义。然后可以在多个文本实例上调用该函数并使用这些参数进行操作。但是,函数的单独实例应该能够同时存在不同的参数。
我得到了一个存储在名为mysearch的变量中的函数实例。该函数接受一个文本参数并返回较大文本中文本起始字符的索引。但是,我不在乎它是重叠的还是不重叠的,也不关心正在搜索的文本是什么。我想打电话给:
mysearch("Pancakes")
由于mysearch已预先参数化为文本“Pancakes are delicious.”的非重叠搜索,因此结果将为 0(文本开头的索引)。
或者,也许我得到了一个不同的配置,它以重叠的方式搜索,使用不同的文本。我希望能够致电:
mysearch("Hash browns")
这个想法是保持接口相同,而不必担心定义函数如何工作的参数或重写函数定义。有没有办法实现这样的目标?