Python: pass function as parameter, with options to be set
在Python中,我需要在相同的输入参数
1 2 3 4 5 6 7 | import scipy.stats scipy.stats.mannwhitneyu(sampleA, sampleB) [...some actions...] scipy.stats.mstats.ks_twosamp(sampleA, sampleB, alternative='greater') [...same actions as above...] scipy.stats.mstats.mannwhitneyu(sampleA, sampleB, use_continuity=True) [...same actions as above...] |
因此,我想传递一些函数的名称,例如更通用的函数
1 2 3 4 | def computeStats(functionName, sampleA, sampleB, options???): functionName(sampleA, sampleB) #and options set when necessary ...some actions... return testStatistic |
如何指定一个有时必须设置,有时不能设置的选项?
使用
1 2 3 4 | def computeStats(func, sampleA, sampleB, **kwargs): func(sampleA, sampleB, **kwargs) ...some actions... return testStatistic |
然后您就可以像这样使用EDOCX1[1]
1 | computeStats(scipy.stats.mstats.ks_twosamp, sampleA, sampleB, alternative='greater') |
也就是说,我并不完全相信你需要这个。简单点怎么样
1 2 3 4 5 | def postprocessStats(testStatistic): ...some actions... return testStatistic postprocessStats(scipy.stats.mstats.ks_twosamp(sampleA, sampleB, alternative='greater')) |
?
我认为这更容易阅读,同时也更一般。