我想要一個函數,它傳遞一些參數(它可以在函數的執行之間有所不同),但不是一次全部執行,然後在給定的時候執行函數其餘的參數。根據參數在運行時自定義一個函數
的想法是,這是回調:
foo(argument)
但富定製事先使用其他參數。
作爲一個簡單的例子,我們考慮重疊與非重疊文本搜索的情況。我有一個功能:
def textSearch(text,substring,overlapping):
...
... # Do stuff
return index
這需要一個文本正文,一個子字符串和一個布爾值。它使用重疊搜索或非重疊搜索來搜索文本正文內的子字符串。我希望能夠創造出具有降低迴調函數的一個實例:
textSearch(text)
通過參數化子和重疊回調之前領域,而無需創建另一個函數的定義。然後可以在多個文本實例上調用該函數,並使用這些參數進行操作。但是,函數的另一個實例應該能夠同時存在不同的參數。
我給出了一個存儲在名爲mysearch的變量中的函數實例。該函數接受一個文本參數,並返回較大文本內文本起始字符的索引。但是,我不在乎它是重疊還是不重疊,也不關心被搜索的文本是什麼。我想只要致電:
mysearch("Pancakes")
隨着MYSEARCH已經預先參數設定爲不重疊的搜索文本的,因此結果將是0(開始時的指數「煎餅好吃。」的文字)。
或者也許我給了一個不同的配置,它以不同的文本以重疊的方式進行搜索。我想能夠調用:
mysearch("Hash browns")
這樣做是爲了保持相同的接口,而不必擔心它定義了功能的工作或重寫函數定義的參數。有沒有辦法實現這樣的事情?
如果答案對您有用,請[接受它](http://meta.stackexchange。com/a/5235/221039)。 – 2013-05-14 05:17:11